まぁ、自分が悪いんだけどサー
今回Excel VBAの Function についてです。
Excel VBAでAccess(mdb)を使用したプログラムを書くことがあると思うんですよ。
で、下記コードを書きました。(一部のみ)
コレで問題なく動くんですよ。正しく…きちんと…
でも、たまーーーーーーーーーーーーーーーにエラーを出します。
「""を開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。」
と…
問題なのは「""」の部分。普通は「"データ.mdb"を開くことが…」とエラーがでます。
でも「""を開くことが…」と出ます。
なんだこれっ!?と2・3テストしながら悩んだ結果、解りましたっ!
判る人はもう判ると思います。
下記2つのFunctionです。
・Public Function getProvider()
・Public Function getDBAFilePath()
そう。Functionなのに、戻り値の型が記述されていません。
なにそれ…確かに書いてない俺が悪いんだけどさー
何でまともに動いてて、いきなり戻り値が空になるのさー
って訳で、2つのメソッドの戻り値の型をきちんと指定すれば出なくなりました。
はぁ…ビルドエラーにしてくれ…又は、常に空を返すようにしてくれ…
まぁ、ルールに乗っ取ってない自分が悪いんだけどサー
文法エラーぐらい全部出せよ…不親切すぎるよな…
(知らないだけかな?)
VBAがまた嫌いになる今日この頃でした…
検索用:Excel vba 戻り値 空になる 戻り値が取れない 戻り値が違う
たまに エラーが出る エラーが発生する タイミング 不明
今回Excel VBAの Function についてです。
Excel VBAでAccess(mdb)を使用したプログラムを書くことがあると思うんですよ。
で、下記コードを書きました。(一部のみ)
Private adoCn As ADODB.Connection Private adoRs As ADODB.Recordset 'DBA接続用プロバイダーを取得する Public Function getProvider() getProvider = "Microsoft.Jet.OLEDB.4.0" End Function 'DBA接続用ファイルパスを取得する Public Function getDBAFilePath() getDBAFilePath = ThisWorkbook.Path & "\データ.mdb" End Function 'DBへ接続する Private Sub getConnection() If adoCn Is Nothing Then Set adoCn = New ADODB.Connection 'データ ソースへの接続 adoCn.Provider = getProvider() 'Accessへ接続プロバイダ名 adoCn.Open getDBAFilePath() '接続するmdbファイル名 End If End Sub
コレで問題なく動くんですよ。正しく…きちんと…
でも、たまーーーーーーーーーーーーーーーにエラーを出します。
「""を開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。」
と…
問題なのは「""」の部分。普通は「"データ.mdb"を開くことが…」とエラーがでます。
でも「""を開くことが…」と出ます。
なんだこれっ!?と2・3テストしながら悩んだ結果、解りましたっ!
判る人はもう判ると思います。
下記2つのFunctionです。
・Public Function getProvider()
・Public Function getDBAFilePath()
そう。Functionなのに、戻り値の型が記述されていません。
なにそれ…確かに書いてない俺が悪いんだけどさー
何でまともに動いてて、いきなり戻り値が空になるのさー
って訳で、2つのメソッドの戻り値の型をきちんと指定すれば出なくなりました。
'DBA接続用プロバイダーを取得する Public Function getProvider() As String getProvider = "Microsoft.Jet.OLEDB.4.0" End Function 'DBA接続用ファイルパスを取得する Public Function getDBAFilePath() As String getDBAFilePath = ThisWorkbook.Path & "\データ.mdb" End Function
はぁ…ビルドエラーにしてくれ…又は、常に空を返すようにしてくれ…
まぁ、ルールに乗っ取ってない自分が悪いんだけどサー
文法エラーぐらい全部出せよ…不親切すぎるよな…
(知らないだけかな?)
VBAがまた嫌いになる今日この頃でした…
検索用:Excel vba 戻り値 空になる 戻り値が取れない 戻り値が違う
たまに エラーが出る エラーが発生する タイミング 不明