幾周來一直對此問題進行故障排除,至今未解決問題。我已經嘗試了許多解決方案,包括:Excel 2013 - 1004運行時錯誤刷新查詢表
- 顯式的選項
- 去除BackgroundQuery =假
- AutoFilterMode =假
什麼在我的情況感到奇怪的是,在兩臺計算機上運行相同版本的Excel和使用相同版本的ODBC驅動程序,在計算機1上,所有查詢工作,並在計算機2上,它會提供運行時錯誤。問題是,計算機1很快就會消失,所以我需要讓計算機2工作。
另一件非常奇怪的事情是,計算機2在同一子程序中成功地連接和檢索信息!因此,查詢1有效,但查詢2給出運行時錯誤。
在同一個Excel文件上運行計算機2,這裏是查詢1:
SELECT COUNT(ADM_APP_INFO.APP_NUM)
FROM
SCHEMA.TABLE TABLE
WHERE (TABLE.QUEUE = 'QNAME' AND TABLE.PARAM = 'D'
AND TABLE.DATE_ENT >= '1/1/2016')
其中工程和拉動信息。查詢2,具有非零數爲:
SELECT DISTINCT COUNT(ACCT_NUM) FROM SCHEMA.DAILY_RUN WHERE DAILY_RUN.ACCT_NUM_FLAG = 0 FETCH FIRST 10 ROWS ONLY
然而,它確實計算機2時查詢2時具有工作沒有WHERE子句。這兩個查詢都在計算機1上工作,但帶有WHERE子句的查詢2給出了計算機2上的錯誤。
我甚至將計算機1上的工作Excel文件複製到計算機2,並僅在計算機2上獲取錯誤。有沒有任何建議?
僅供參考,這裏是隨着塊我使用:
With Worksheets("Template").QueryTables.Add(Connection:="ODBC;DSN=Connect32;UID=UserName;;HOST=111.111.11.111;PORT=xxxx;SUBSYS=xxxx;DBTY=DB2;PLAN=xxxx ", _
Destination:=Range("D5"))
.CommandText = Range("Query!A1:A1").Value
'.Name = "Query from MS Access Database"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
那麼從計算機#2複製失敗的Excel文件到計算機#1並在那裏運行呢? – jsotola
發現這個https://stackoverflow.com/questions/17980854/vba-runtime-error-1004-application-defined-or-object-defined-error-when-select#17982430 – jsotola
嗨jsotola,是的,我也試過,以及並且它在計算機1上再次運行,但在計算機2上失敗 - 謝謝但您提供的鏈接執行了複製粘貼,但似乎沒有解決此問題... –