注文履歴:
ID__注文日_________お客様名____金額____注文内容
01__2007/11/11__鈴木 一郎__\1,000__商品A
02__2007/11/12__中村 主水__\2,000__商品B
03__2007/11/13__田中 五郎__\3,000__商品C
[イミディエイト]
? DBSelect("SELECT * FROM 注文履歴",,vbcrlf)
1;2007/11/11;鈴木 一郎;1000;商品A;
2;2007/11/12;中村 主水;2000;商品B;
3;2007/11/13;田中 五郎;3000;商品C;
? DBSelect("SELECT * FROM 注文履歴 WHERE 注文日 BETWEEN #2007/11/12# AND #2007/11/13#",,vbcrlf)
2;2007/11/12;中村 主水;2000;商品B;
3;2007/11/13;田中 五郎;3000;商品C;
先ずは、このようにExcel のイミディエイトウインドウでAccessからのデータ取得に成功することかと。
<参照設定>
レ Microsoft ActiveX Data Objects 2.8 Library
と、参照設定に以上を追加する必要がありますが、ここはお判りのことと・・・。
そうなると、問題は、ADOを利用したデータの取得手順かと推察します。
それ自体は、さして難しいものではありません。
実際の手順は、以下のDBSelect関数を手掛かりにされて下さい。
? DBSelect("SELECT * FROM 注文履歴 WHERE 注文日 BETWEEN #2007/11/12# AND #2007/11/13#","||","__")
2||2007/11/12||中村 主水||2000||商品B||__3||2007/11/13||田中 五郎||3000||商品C||__
DBSelect関数は、このように取得したデータは列区切り記号とレコード区切り記号とで連結して返します。
これをエクセルに表示するには Split関数でバラせば容易かと思います。
Option Explicit
Const conConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\db1.mdb"
Public Function DBSelect(ByVal strQuerySQL As String, _
Optional ByVal strSeparator1 As String = ";", _
Optional ByVal strSeparator2 As String = "") As String
On Error GoTo Err_DBSelect
Dim I As Integer
Dim J As Integer
Dim R As Integer
Dim C As Integer
Dim M As Integer
Dim N As Integer
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Dim Datas As String
Set rst = New ADODB.Recordset
' =================
' Begin With: rst
' -----------------
With rst
.Open strQuerySQL, _
conConnection, _
adOpenStatic, _
adLockReadOnly
If Not .BOF Then
M = .RecordCount - 1
N = .Fields.Count - 1
.MoveFirst
For R = 0 To M
For C = 0 To N
Datas = Datas & .Fields(C) & strSeparator1
Next C
If Len(strSeparator2) Then
Datas = Datas & strSeparator2
End If
.MoveNext
Next R
End If
End With
' ---------------
' End With: rst
' ===============
Exit_DBSelect:
DBSelect = Datas & ""
Exit Function
Err_DBSelect:
MsgBox "SELECT 文の実行時にエラーが発生しました。(DBSelect)" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & Err.Description & Chr$(13) & _
"・SQL Text=" & strQuerySQL, _
vbExclamation, " 関数エラーメッセージ"
Resume Exit_DBSelect
End Function