
エクセルからアクセスの全てのクエリ名を取得することはできますか?
アクセスからなら
http://www.accessclub.jp/vbakaisetu/58.html
これでできたのですが、
エクセルからアクセスの全てのクエリ名をシートに書き出したいのですが
どうすればいいでしょうか?
エクセルからアクセスのクエリ名を取得するプロシージャーを実行して
変数に格納し、エクセルに戻すしかないのでしょうか?
No.2ベストアンサー
- 回答日時:
Excelのコード表の参照設定で、
Microsoft DAO xx Object Library
にチェックを入れて置いてください。
なお、xxは3.6のような数字です。
Sub test()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim myQdfName As Variant
Dim i As Long
Dim j As Long
Set db = OpenDatabase("C:\Temp\sample.mdb")
'クエリ名の取り出し
ReDim myQdfName(i)
For Each qdf In db.QueryDefs
If Left(qdf.Name, 1) <> "~" Then
ReDim Preserve myQdfName(i)
myQdfName(i) = qdf.Name
i = i + 1
End If
Next qdf
'シートへの書き込み
For j = LBound(myQdfName) To UBound(myQdfName)
With Worksheets("Sheet1")
.Cells(j + 1, 1).Value = myQdfName(j)
End With
Next j
Set qdf = Nothing
db.Close: Set db = Nothing
End Sub
クエリの数は不明なので、一旦配列に取り込み、
それをシートに書き込む仕様にしています。
なお、No1さんのおっしゃるMsQueryからは、肝心なMSysObjectsや
MSysQueriesの列は参照できないようです。Accessのバージョンに
よってことなるかもしれませんが。
できました~
~sq_cフォーム1~sq_cコンボ0
とか言う変なオブジェクトまで取得されちゃうからifするんですね。
このコードはエクセルからでもアクセスからでも実行可能のようですね。
有難うございます。
No.1
- 回答日時:
記憶があいまいなのと環境が無いので試せませんので非常に無責任な状態ですが。
隠しオブジェクトのMSysなんとかというテーブルに、定義されてるオブジェクト名が一覧になってませんでしたっけ?
どこかの列の特定の値でオブジェクトの種類が"クエリ"と判断できたような気がします。
MSQueryで接続できるならそれで取得するとか。
違ってたらごめんなさい。
システムオブジェクトのMSysQueriesを見てみましたが
クエリ名らしきものはありませんでした。
むしろ何のデータが入ってるのか理解できませんでした笑
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「テキストデータで送ってくだ...
-
Microsoft 365 Basic サブスク...
-
access vbaでフォームを開くと...
-
Accessのクエリで、replace関数...
-
ACCESS VBA でのエラー解決の根...
-
レポートの印刷を一括ではなく...
-
access2021 強制終了してしまう
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
Access 複数条件検索の設定が上...
-
accessでlaccdbファイルが削除...
-
Accessのクエリの結果を、既存...
-
Accessのスプレッドシートエク...
-
【アクセス】レポート テキスト...
-
Accessで独自メニューバーまた...
-
Excelを開く時と閉じる時に一度...
-
access2021 メッセージボックス...
-
Access フォーム上のテキストボ...
-
Access runtimeでのオプション...
-
access2019の起動が遅い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
「テキストデータで送ってくだ...
-
ACCESS VBA でのエラー解決の根...
-
Accessのクエリで、replace関数...
-
access2021 強制終了してしまう
-
access2021 VBA メソッドまたは...
-
Access VBA [リモートサーバー...
-
access vbaでフォームを開くと...
-
Accessのクエリの結果を、既存...
-
Access Error3061 パラメータが...
-
Microsoft365にAccessってあり...
-
実行時エラー3131 FROM 句の構...
-
列が255以上のCSVファイルをAcc...
-
Accessのスプレッドシートエク...
-
Access 複数条件検索の設定が上...
-
Accessでレポートを印刷する時...
-
Arduinoで温湿度と時刻を1分ご...
-
accessでlaccdbファイルが削除...
-
Accessでフォームに自動入力し...
-
Accessのリンクテーブルのパス...
おすすめ情報