下松市のFS社を訪問にしたら、「図面の管理」で良い方法がないか‥‥ と聞かれたので、持論を展開した。
帰宅後、mdb データベースを Excel に取り込む方法を検索していたら、ジャストのページを見つけた。
§1.ADOを使う前の設定
VBE画面から
§2.QueryTableでデータベースを読み込む
- Public Const MDBName As String = "SampleDat1.mdb"
- Dim que As QueryTable
- Dim i As Long, LastRow As Long
- Dim strSQL As String, strFullPath As String, strPasteTop As String
- Sheets("作業指図").Select
- 'SQL文
- strSQL = "SELECT 受付No, 得意先コード, 得意先名, 品名コード, 品名 FROM D_作業指図" _
- & " WHERE (((受付No) Is Not Null) AND *1"
- 'QueryTableオブジェクト
- Set que = ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access Database;DBQ=" _
- & macBookPath & "\" & MDBName _
- , Destination:=ActiveSheet.Range("A1"), Sql:=strSQL)
- 'クエリーを実行し、終わるまで待つ。
- que.Refresh BackgroundQuery:=False
- Set que = Nothing
苦労したのが No.14 の BackgroundQuery:=False。
これにより、クエリーが終わるのを待って次のコマンドに進む。
解ってみれば「当然じゃろ」と言われるかもしれないが...
*1:製造完了日) Is Not Null