Excel记录的SQL数据库查询不起作用

时间:2015-07-14 15:16:02

标签: sql excel-vba vba excel

我已经录制了一个查询数据库的宏,当我录制宏时,查询运行正常。但是,当我尝试在同一张纸上或另一张纸上再次运行宏时,我收到错误:

  

运行时错误1004,“SQL语法错误”

就行了

.Refresh BackgroundQuery:=False".  

以下是录制的宏。

Sub Macro3()

    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=Substation Prod;SRVR=SUBP;UID=U326357;",     Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT FACT_MONTHLY.TIME_STAMP, FACT_MONTHLY.SYSTEM_NUMBER_VAL0, FACT_MONTHLY.SUBSTATION_NUMBER_VAL0, FACT_MONTHLY.MVA_MAX_OUT_VAL0, FACT_MONTHLY.MW_MAX_OUT_VAL0, FACT_MONTHLY.MVAR_MAX_OUT_VAL0, FACT_" _
        , _
        "MONTHLY.MW_MIN_OUT_VAL0, FACT_MONTHLY.MVAR_MIN_OUT_VAL0, FACT_MONTHLY.PF_MAX_VAL0, FACT_MONTHLY.PF_MIN_VAL0, FACT_MONTHLY.TOP_OIL_TANK_MAX_VAL0, FACT_MONTHLY.LOAD_FACTOR_VAL0, FACT_MONTHLY.PH1_TAP_MAX" _
        , _
        "_DRAG_VAL0, FACT_MONTHLY.WIND_TEMP_MAX_VAL0, FACT_MONTHLY.LTC_TEMP_MAX_VAL0, FACT_MONTHLY.PH2_TAP_MAX_DRAG_VAL0, FACT_MONTHLY.PH3_TAP_MAX_DRAG_VAL0, FACT_MONTHLY.BOT_OIL_TEMP_MAX_VAL0, FACT_MONTHLY.PH" _
        , _
        "1_TAP_MIN_DRAG_VAL0, FACT_MONTHLY.PH2_TAP_MIN_DRAG_VAL0, FACT_MONTHLY.PH3_TAP_MIN_DRAG_VAL0, FACT_MONTHLY.PH1_LOAD_MAX_KV_VAL0, FACT_MONTHLY.PH2_LOAD_MAX_KV_VAL0, FACT_MONTHLY.PH3_LOAD_MAX_KV_VAL0, FA")
        .Name = "Query from Substation Prod"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

我在网上搜索了解决这个问题的方法,但我找到的其他解决方案都没有。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

With语句中的所有前面的行都是设置属性。  

.Refresh BackgroundQuery := False 

是方法调用。

刷新应该刷新结果。  后台查询用于查询SQL数据时是可选的,因此我认为您可以将其关闭并且只有.Refresh

如需进一步的帮助,请尝试VBA Excel QueryTables.add .Refresh BackgroundQuery Error