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

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

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

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Q&A

0回答

2005閲覧

.NETのWindowsアプリからアクセスファイル(.accdb)接続時(ACE.OLEDB.12.0)に不定期で接続エラーが発生します。

2501bkk

総合スコア0

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

0グッド

0クリップ

投稿2021/05/28 05:46

前提・実現したいこと

.NETのWindowsアプリからアクセスファイル(.accdb)接続時(ACE.OLEDB.12.0)に
不定期で接続エラーが発生するので、このエラーを解消したいです。

発生している問題・エラーメッセージ

エラーメッセージ
"DBConnectErrSystem.Data.OleDb.OleDbException (0x80004005): エラーを特定できません
場所 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
場所 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
場所 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
場所 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
場所 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
場所 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
場所 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
場所 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
場所 System.Data.OleDb.OleDbConnection.Open()
場所 Common.MDB.ConnectsMDB(Boolean blnCOMPACT_MDB)"
--------------------------------------------------------------------------------------------------

該当のソースコード

Visual

1'@****************************************************************************** 2'@ 名  称: ConnectsMDB 3'@ 機 能: MDBコネクト 4'@ 備  考: 5'@****************************************************************************** 6Public Function ConnectsMDB(Optional ByVal blnCOMPACT_MDB As Boolean = True) As Boolean 7 Dim loop1 As Short 8 9 ConnectsMDB = False 10 11 DICApp.DICAppCommon.CommonFunctions.LoadResouce() 12 13 For loop1 = 0 To 9 14 pCanQuery(loop1) = False 15 intCurrentRow(loop1) = 0 16 Next 17 18 If pConnected Then 19 'エラーメッセージ出力 20 Call ShowMDBError("DBConnectErr") 21 Exit Function 22 End If 23 24 If pPath = "" Then 25 'エラーメッセージ出力 26 Call ShowMDBError("DBPathErr") 27 Exit Function 28 End If 29 30 Dim stDiryName As String = System.IO.Path.GetDirectoryName(pPath) 31 Dim stFileName As String = System.IO.Path.GetFileName(pPath) 32 If Not stDiryName.Trim.Substring(stDiryName.Trim.Length - 1) = "\" Then 33 stDiryName += "\" 34 End If 35 36 ' MDBの最適化 37 If blnCOMPACT_MDB = True Then 38 If MDB.glbCOMPACT_MDB(stDiryName, stFileName) = False Then 39 'エラーメッセージ出力 40 Call ShowMDBError("DB_COMPACT_Err") 41 'Return Falseしない 42 End If 43 End If 44 45 pMyDb = New OleDb.OleDbConnection 46 47 pMyDb.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & 48 "Data Source=" & pPath & ";" & 49 "Persist Security Info=False" 50 51 Try 52 pMyDb.Open() 'MDBのオープン 53 'トランザクション開始 54 If Not BeginsTransMDB() Then 55 Exit Function 56 End If 57 Catch ex As Exception 58 'エラーメッセージ出力 59 Call ShowMDBError("DBConnectErr" & ex.ToString) 60 Exit Function 61 End Try 62 63 dtSet.Clear() 64 65 pConnected = True 66 67 ConnectsMDB = True 68 69End Function

試したこと

上記ソースコードからMDBの最適化処理を削除して実施。

補足情報(FW/ツールのバージョンなど)

・OS:Windows10 Pro 64ビット版
・Access:Access 2016 32ビット版
・その他:Microsoft Access database engine 2010(Japanese) 32ビット版(※1)
(※1)Visual Basic 2017のターゲットCPUの設定がx86なので64ビット版では動かない。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問