質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1666閲覧

AccessVBAからSQL Serverに接続できない

ohgood

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/07/12 05:19

編集2022/07/14 06:10

SQL Serverから情報を取得するためにADOを使用した接続でAccessからVBAでSQL Servar 2019 Exprssに接続する、プログラムを実行するが接続に失敗してしまいます、ご教示願えないでしょうかよろしくお願い致します。

使用環境、Windows11Home、SQL ServerはSQL Servar 2019 Exprss、認証はSQL Server 認証、AccessのバージョンはAccess2019 32bit

参照設定は追加済です、Microsoft Activex Data Objects 2.8 Libraryにチェックを入れてあります

SSMSでサーバーロールチェックボックスにすべてチェックをいれてあります
SSMSのユーザーマッピングでSanpleDBのデータベース、ロールメンバーシップで
チェックボックスすべてにチェックを入れてあります

AccessVBAが動作しているPCとSQL ServerをインストールしているPCは同じPCです

Windowsファイアウォールで下記プログラムへの接続を許可しましたが接続に失敗します、%ProgreFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
念のためWindowsファイアウォールをすべて無効にしましたが接続に失敗します

実行時エラー -2147467259(80004005)
このログインで要求されたデータベース
SanpleDBを開けません、ログインに失敗しました

上記エラーが表示されcn.Open strcnでプログラムが停止して接続できない

実行したデータベース接続プログラム
Public cn As ADODB.Connection
Public strcn As String

Public Sub データベース接続()
Set cn = CreateObject("ADODB.Connection")
strcn = "Provider=SQLOLEDB.1" & _
";Persist Security Info=False;Data Source=LAPTOP-R123XXX\SQLEXPRESS" & _
";Initial Catalog=SanpleDB" & _
";password=1234" & _
";persist security info=True" & _
";user id=abmin;"
cn.Open strcn―――▶ここで停止します
End Sub

SSMSでユーザーabminパスワード1234でSQL Server認証でSunpleDBを開く事ができます
ODBC接続したSQL ServerテーブルのデータはAccessで参照できます
新しいログインユーザーを作成しパスワードとIDを書き換えて実行しましたが同じエラーが出ます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2022/07/12 05:51

accessVBAを動作させているPC①と、sqlserverのあるPC②は、別ものですか? 上記が別ものとして続きの質問。 PC①上にあるSSMSから、PC②上にあるsqlserverにアクセスできますか?
kikukiku

2022/07/12 05:56

もし上記で接続できないようでしたら、PC②のファイヤーウォールをすべて無効にして試してみてください。
kikukiku

2022/07/12 06:22

PC①とPC②は同一PCなのですね。 SSMSでユーザabmin、パスワード1234で SQLServer認証でログインできますか?
kikukiku

2022/07/12 06:37

ExcelVBAですが、自身の環境では下記で動作しました。 Public Sub データベース接続() dim cn As ADODB.Connection   <==変更箇所 dim strcn As String   <==変更箇所 Set cn = CreateObject("ADODB.Connection") strcn = "Provider=SQLOLEDB.1" & _ ";Persist Security Info=False;Data Source=LAPTOP-R123XXX\SQLEXPRESS" & _ ";Initial Catalog=SanpleDB" & _ ";password=1234" & _ ";persist security info=True" & _ ";user id=abmin;" cn.Open strcn End Sub
kikukiku

2022/07/12 06:42

上記テスト環境だけ書いておきます。 Win10Pro、SQLServerExpress2019、Excel2010
ohgood

2022/07/12 08:46

ありがとうございました、今はテストできないので後ほど確認してみます
ohgood

2022/07/13 07:14

ご指摘の変更箇所を変えてテストしてみましたが、同じエラーが表示されます
kikukiku

2022/07/14 00:02

そうするとaccess特有のことなのでしょう。 accessをもっていないので、こちらでは検証できないため、 他の方に任せます。
kikukiku

2022/07/14 00:05

Win11が気になるので、Win10で試してみてはどうでしょう。
kikukiku

2022/07/14 04:36

ExcelVBAで試してみるとか。
ohgood

2022/07/14 05:56

Win11にアップグレードしたのは最近でこのエラーはWin10でも表示されていました、ExcelVBAは知識がないので、コードとしては同じだと思うのですが実行方法がよくわかりません、勉強してみます、いろいろとお知恵を頂きありがとうございました。
kikukiku

2022/07/14 05:58

お力になれず申し訳ないです。
ohgood

2022/07/14 06:20

とんでもないです、一人で悩んでいたので他の方のご意見を頂きありがたいことです。
guest

回答1

0

自己解決

SQL Serverを削除し再インストールすることで接続する事ができました、みなさまお騒がせして申し訳ありません

投稿2022/08/10 07:55

ohgood

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問