- ベストアンサー
AccessのクエリをEXCELのVBAで置き換える方法
- AccessのクエリをEXCELのVBAを使用して置き換える方法を教えてください。
- AccessデータをExcelに変換し、品番を縦並び、納期を横並びにして受注残を表示するVBAの処理方法を教えてください。
- Office Links→Excelの出力処理をVBAで自動化する方法や、クエリから直接データを取得する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Accessのデータベースを単なるデータファイルとして扱い、すべてExcel VBAで処理したければ、ADOのお勉強をなさってください。 http://home.att.ne.jp/zeta/gen/excel/c04p02.htm ご希望とは制御の方向が逆ですが、Accessからクエリの結果をExcelに貼り付け、Excelを操作する事例を下記のNo.2で回答しております。ご参考まで。 http://okwave.jp/qa/q5137524.html
その他の回答 (3)
- shinkami
- ベストアンサー率43% (179/411)
・エクセル形式でエキスポートします ・VBAなら DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "クエリー名", "エクセルのファイル名"
- nicotinism
- ベストアンサー率70% (1019/1452)
以前作ったものです。 たたき台にして下さい。 Sub Acc2Xls() 'MDBからカレントシートへ転記 Dim cn As Object Dim rs As Object Dim strSql As String Dim i As Long, j As Long If Range("A1") = "" Then Exit Sub Rows("3:3").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("A1").Select Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open "Driver={Microsoft Access Driver (*.mdb)};" _ & "DBQ=g:\あれ.mdb;" 'g:\あれ.mdb は適宜変更を strSql = "select * from それ" _ & " where これ like '%" & Range("A1").Value & "%'" _ & " order by ID" 'AccessのSQL文を流用 ↑ADOなのでワイルドカードは% rs.Open strSql, cn, 0, 1 For j = 0 To rs.fields.Count - 1 Cells(2, j + 1) = rs.fields(j).Name Next Application.ScreenUpdating = False ' Range("A3").CopyFromRecordset rs 'メモ型の文字数制約などが有ったため没 Do Until rs.EOF i = i + 1 For j = 0 To rs.fields.Count - 1 Cells(i + 2, j + 1) = rs.fields(j) Next rs.movenext Loop Application.ScreenUpdating = True rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub
お礼
たたき台資料有難うございました。 色々調べて他4件との合作みたいな感じで データ読み込むことに成功しました。 又、宜しくお願いいたします。
- aokii
- ベストアンサー率23% (5210/22062)
そのままコピーして貼り付けではできませんでしょうか。
補足
説明が悪くて誠にすみません。 行いたい作業は クエリ指定→Office Links→Excelの出力処理→指定EXCELデータに貼り付けをEXCEL VBAにて自動処理。 もしくは指定クエリから直接データを引き込むEXCELのVBA処理方法をご教授お願いいたします。 以上説明で伝えられるかと思います。 宜しくお願いいたします。
お礼
参考資料有難うございました。 今回はEXCELのADOを参照設定してデータを取り込むように することが出来ました。Acccesからの制御は次回TRYしてみます。