いつもお世話になっております。
度々Accessの件で質問させて頂いております。
サブフォームと対応しているクエリを調べるために以下の処理をデバッグ確認致しました。
VBA
1Debug.Print フォーム名.Form.RecordSource
そうすると対応しているセレクト文のクエリが取得できました。
これを踏まえて以下、2つ質問があります。
★質問一つ目★
カレントデータベースの全クエリファイルにを吐き出すModuleを実行すると、
フォーム名.Form.RecordSourceの結果と同じセレクト文が定義されている
.sqlファイルが取得できました。
======↓↓↓取得できたファイル名↓↓↓======
sq_cfmフォーム名~sq_cfmサブフォーム名.sql
======↑↑↑取得できたファイル名↑↑↑======
クエリを吐き出すModuleは以下です。
VBA
1' クエリごとにファイルに吐き出す 2Private Sub exportSql() 3 4 Dim Dbs As DAO.Database 5 Dim Qdf As DAO.QueryDef 6 Dim FileName As String 7 Dim FNum As Integer 8 Dim stSQL As String 9 Dim ret As Double 10 11 ' データベースセット 12 Set Dbs = CurrentDb 13 'Set Dbs = DAO.OpenDatabase("c:\test.mdb") ' DBの指定がある場合 14 15 'クエリ分ループ 16 For Each Qdf In Dbs.QueryDefs 17 outputFilePath = "パス" 18 With CreateObject("ADODB.Stream") 19 .Charset = "UTF-8" 20 .Open 21 .WriteText Qdf.Sql, 1 22 .SaveToFile outputFilePath, 2 23 .Close 24 End With 25 Next 26 27 Set Dbs = Nothing 28End Sub 29
しかし、カレントプロジェクトのナビゲーションのクエリから
取得できたファイル名で検索をかけてもヒットしません。(cfmとつくクエリすらありませんでした)
sq_cfmxxxxxx~xxxxxxxのようなクエリ名で吐き出されるクエリはどこに定義があるのでしょううか?
フォームのモジュール内でしょうか?
★質問二つ目★
レコードソースを定義する際は
xxxx.RecordSource = 'table_a' や
xxxx.RecordSource = 'select * form table_a'
のようにするのが普通なのでしょうか?
文章がややこしいですが、ご教授のほどよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。