Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Access 2016)
クエリ作成時のエラー
投稿日時: 19/01/08 11:27:30
投稿者: dekoderu

VBAでクエリを作成する際に「オブジェクトが正しくないか、現在設定されていません。
」というエラーが発生し、作成が行えません。
 
[コードの抜粋]
 
    Dim strConnect As String '接続文字列
    Dim cmd As ADODB.Command
    Dim cat As ADOX.Catalog
    Dim strQuery as string
 
    '接続文字列を設定する
    'コンバージョン対象のデータベースに接続する
    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                 "Data Source=" & データベース名 & ";"
 
    '接続文字列もしくはConnectionオブジェクトを指定する
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = strConnect
 
    'クエリーをCommandオブジェクトに設定
    Set cmd = New ADODB.Command
 
  strQuery="select left(テーブル名.項目名,4) as 項目名 from テーブル名"
 
    cmd.CommandText = strQuery
     
    cat.Views.Append "テーブル名", cmd
     
    Set cmd = Nothing
    Set cat.ActiveConnection = Nothing
    Set cat = Nothing
 
クエリの元のなるテーブルはOracleでリンクしているテーブルです。
SQL文のleft関数を除くと正しく作成されるのですが、
原因が特定できていません。
 
何かご存知の方がいらっしゃいましたら
よろしくお願いいたします。

回答
投稿日時: 19/01/08 18:34:21
投稿者: Suzu

こんにちは。
 
ファイル形式はなんでしょうか?
accdb?でしょうか?
 
それとも、mdbファイル?
mdbだとすれば、mdbのファイル形式はなんでしょう?
(Access2.0/Access97/Access2003/Access2010 どれで作成されたファイルでしょう?)
 
http://psp8155.blog13.fc2.com/blog-entry-204.html
https://answers.microsoft.com/ja-jp/office/forum/office_2010-access/access2010%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF/98c99dce-007d-e011-9b4b-68b599b31bf5
 
修復/最適化 や、新規データベースファイルに全てのオブジェクトをインポートしてみてください。

投稿日時: 19/01/11 22:42:27
投稿者: dekoderu

回答ありがとうございます。
お返事遅れました。
 
ファイルはmdbでしたが、
クエリを作成する都度、コネクションを作っていたのが原因だったようです。
10件以上のクエリを作成する処理を作っていたのですが、コネクションは最初の1度だけにしたところ処理が正常に行えました。
 
アドバイスをいただきありがとうございました。