実現したいこと
Accessでリンクテーブルが設定されているツールでのエラーが発生してしまいます。自分のPCで開いた時には発生しなかったのですが、どうすれば解決できるでしょうか?
初心者で申し訳ございませんが、ご教授の方よろしくお願いします。
発生している問題・分からないこと
テーブルを開きボタンをクリック時に発生するVBAが実行されると、下記のエラーが発生しています。
自分のパソコンでは実行できましたが、別のパソコンで同じaccessのデータを実行時にエラーが出ました。
エラーメッセージ
error
1実行時エラー'-2147467259(80004005)': 2ODBC--'接続先'への接続が失敗しました。 3
該当のソースコード
VBA
1エラーが発生したVBAコード 2 3Dim strSQL As String 4Dim rs As ADODB.Recordset 5Dim cn As ADODB.Connection 6Dim str社員コード As String 7Dim strパスワード As String 8Dim int権限区分 As Integer 9 10str社員コード = Me.txt社員コード & "" 11strパスワード = Me.txtパスワード & "" 12 13strSQL = "SELECT [社員リスト].[社員コード], [社員リスト].[社員名], [パスワードリスト].[パスワード], [パスワードリスト].[権限区分]" 14strSQL = strSQL & "FROM [社員リスト] LEFT JOIN [パスワードリスト] ON [社員リスト].[社員コード] = [パスワードリスト].[社員コード]" 15strSQL = strSQL & "WHERE [社員リスト].[社員コード] = '" & str社員コード & "' AND [パスワードリスト].[パスワード] = '" & strパスワード & "' " 16 17 18 19Set cn = CurrentProject.AccessConnection 20Set rs = New ADODB.Recordset 21 22エラーの線がある場所 23 24----------------------------------- 25rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic 26----------------------------------- 27 28If rs.EOF = False Then 29 30MsgBox "ようこそ" 31int権限区分 = rs![権限区分] 32 33'メニューを開く 34DoCmd.OpenForm "メインメニュー" 35 36'権限を確認して「環境設定ボタン」を制御する 37If int権限区分 = 9 Then '0:一般ユーザー 9:管理者 38Forms.メインメニュー.btn設定.Enabled = True 39Else 40Forms.メインメニュー.btn設定.Enabled = False 41End If 42 43'この画面を閉じる 44DoCmd.Close acForm, Me.Name 45 46Else 47 48MsgBox "データは存在しません" 49 50End If 51 52rs.Close: Set rs = Nothing 53cn.Close: Set cn = Nothing 54 55
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
・teratailで同じエラーを見つけましたがODBCの32bitや64bit関連のエラーかと推測しました。
しかし、どのように変更すればいいのかがわかりません。
該当するSQLServerにある、ODBCのプラットフォームを見ても「32/64ビット」と書かれており問題があるかが不明です。
補足
Microsoft Access 2021(.accdb)
・ODBC プラットフォーム 32/64ビット ドライバー SQL Server
・リンクテーブルにてODBC接続
参考にした動画(16:00~)
https://www.youtube.com/watch?v=V75qtW-VBUw&list=PLK0z_eKZxdJs53V8Tw_svmfVI1RyhNw33&index=50