テスト目的で、MS AccessテーブルからvbaとSQL(方向:Excel + VBAアクセス)を使用してExcelのレコードセットにデータを取得しようとしています。VBAからSQLへのアクセス(日付別)
MSアクセステーブルはT_Zeiten
と呼ばれ、1つの列はzeiDat
と呼ばれ、日付(09.11.2016などのヨーロッパスタイル)が含まれています。
私がしたいことは、接続を開き、2つの特定の日付間のすべてのエントリを探し、それらをレコードセットに書き込むことです。私はすでに接続を開くことができましたが、日付のもの(USスタイルの日付)と闘いました。 Excelの「From」と「To」の日付も「dd.mm.yyyy」と書式設定されています。
これは私がこれまで持っているものです。
Dim cn As Object
Dim ZeitenArbeitenGrob As Recordset
Dim strSqlZeitenArbeitenGrob As String
Dim start As String
Dim ende As String
start = Application.WorksheetFunction.Text(Cells(3, 2), "dd/mm/yyyy")
ende = Application.WorksheetFunction.Text(Cells(4, 2), "dd/mm/yyyy")
Dim strConnection As String
celllocation = 6
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Users\mj\Downloads\Neuer Ordner (2)\ZeitErfKonst.mdb"
strSqlZeitenArbeitenGrob = "SELECT COUNT(zeiDat) FROM T_Zeiten WHERE [zeiDat] BETWEEN #" & start & "# And #" & ende & "#"
cn.Open strConnection
Set ZeitenArbeitenGrob = cn.Execute(strSqlZeitenArbeitenGrob)
MsgBox ZeitenArbeitenGrob.Fields(0)
は15件のエントリがありますが、メッセージボックスには、213私を示し、私は理由を知りません。
zeiDatフィールドを持っているどのようなデータタイプ? – matellan
日付/時刻(それはドイツ語版を使用していると思われます) – Moritz