0

私はExcelDBに接続しようとします(完璧なDBではないことはわかっていますが、アクセスは使用できませんが、Excelを使用する必要があります...):objRecordset.Openの行まですべて正常に動作します

エラーが発生し、解決方法がわからないことを認めます

これがコードです

Sub macromacro()
'On Error Resume Next

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1

'***** Creation de la connection *****
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & ThisWorkbook.Path & "\StatsLyon.xlsm;" _
    & "Extended Properties=""Excel 8.0;HDR=Yes;"";"


'***** Requête SQL *****
objRecordset.Open

Query = "Select SUM(NbCompteurElec) AS NombreTotal FROM [Feuil1$] ," _
& "objConnection, adOpenStatic, adLockOptimistic, adCmdText"

Feuil5.Cells(1, 3).Value = "NombreTotal"
Feuil5.Cells(1, 4).Value = objRecordset.Fields(NombreTotal).Value

objConnection.Close
Set objConnection = Nothing


End Sub
4

1 に答える 1

0

*.xlsm および *.xlsx で ACE を使用する必要があります。

objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & ThisWorkbook.Path & "\StatsLyon.xlsm;" _
    & "Extended Properties=""Excel 8.0;HDR=Yes;"";"

あなたも使いたいかもしれません

Extended Properties="Excel 12.0 Xml;HDR=YES";

詳細については、 http://www.connectionstrings.com/excel-2007を参照してください。

それで:

objRecordset.Open "Select SUM(NbCompteurElec) AS NombreTotal FROM [Feuil1$]", _
objConnection, adOpenStatic, adLockOptimistic

再コメントを編集

sSQL = "Select SUM(NbCompteurElec) AS NombreTotal FROM [Feuil1$] " _
     & "WHERE [DateMad] Between #" _
     & Format(date_deb,"yyyy/mm/dd") _
     & "# And #" & Format(date_fin,"yyyy/mm/dd") & "#"

objRecordset.Open sSQL, objConnection, adOpenStatic, adLockOptimistic

日付の区切り文字は次のとおりです。 #
あいまいにならないため、日付を年 (yyyy)、月、日にフォーマットすることをお勧めします。

于 2012-10-30T13:43:22.987 に答える