0

MS Access データベースからデータをインポートするコードを作成しようとしていますが、マクロを実行するたびにこのエラーが発生し、コードの何が問題なのかわかりません。エラーの内容を教えてください:

 With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
            "ODBC;DSN=MS Access Database;DBQ=" & db_fullname & ";DefaultDir=" & db_dir & ";DriverId=25;FIL" _
            ), Array("=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:=Range( _
            "$A$1")).QueryTable
            .CommandText = Array( _
            "SELECT INNW_CFC_1X.Date_Cascade_Sector_Band, INNW_CFC_1X.Cascade_Sector_band, INNW_CFC_1X.Date, INNW_CFC_1X.Market, INNW_CFC_1X.`BSC Name`, INNW_CFC_1X.`Cluster ID`, INNW_CFC_1X.`Cascade ID`, INNW_CFC" _
            , _
            "_1X.`BTS ID`, INNW_CFC_1X.Sector, INNW_CFC_1X.Band, INNW_CFC_1X.cfc18, INNW_CFC_1X.cfc30, INNW_CFC_1X.cfc53, INNW_CFC_1X.`Total RF CFC`, INNW_CFC_1X.cfc84, INNW_CFC_1X.cfc85, INNW_CFC_1X.`Total Capaci" _
            , _
            "ty CFC`, INNW_CFC_1X.cfc26, INNW_CFC_1X.cfc49, INNW_CFC_1X.cfc102, INNW_CFC_1X.cfc2, INNW_CFC_1X.cfc54, INNW_CFC_1X.cfc99, INNW_CFC_1X.`Total BH CFC`, INNW_CFC_1X.cfc31, INNW_CFC_1X.cfc29, INNW_CFC_1X" _
            , _
            ".cfc81, INNW_CFC_1X.`Total Parameter CFC`, INNW_CFC_1X.cfc16, INNW_CFC_1X.cfc17, INNW_CFC_1X.`Total IVHHO CFC`" & Chr(13) & "" & Chr(10) & "FROM `" & db_fullname & "`.INNW_CFC_1X " & Chr(13) & "" & Chr(10) & "WHERE (INNW_CFC_1X.Date>={ts '" & start_date2 & " 00:00:00'} And INNW_CFC_1X.Date<={ts '" & end_date2 & "" _
            , _
            " 00:00:00'}) " & query_string & "")

    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Table_Query_from_MS_Access_Database"
    .Refresh BackgroundQuery:=False
End With
4

1 に答える 1

0

Access では、他のデータベース (MySQL) が使用するバッククォートの代わりに角かっこ [ ] を使用します。

日付も Access の予約語であり、角かっこで囲むか、このフィールドの名前を変更する必要があります。

ところで、読みにくいですが、すべてのデータが単一のテーブル INNW_CFC_1X から取得されているように見えるため、すべてのフィールドに対してこのテーブル名を繰り返す必要はありません。

于 2013-07-15T21:55:16.937 に答える