[英]Weirdness with VBA in Excel and Access
我有以下代碼。
Sub Run_Queries_In_Access()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim acc As Object
Dim db As Object
Dim r As Long
Dim strDatabasePath As String
Set conn = New ADODB.Connection
'Set conn = CreateObject("Access.Application")
strDatabasePath = ThisWorkbook.Path & "\AI.mdb"
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strDatabasePath & ";" & _
"Jet OLEDB:Database Password=xxx"
conn.Open
Set acc = New Access.Application
'acc.Visible = True
Set db = CurrentDb()
Application.Wait DateAdd("s", 2, Now) 'Wait for 2 seconds
acc.DoCmd.SetWarnings False
acc.DoCmd.OpenQuery "qry_Delete_ALLL"
Dim qry As Object
Set qry = db.QueryDefs("qry_HIST")
qry.Parameters(0) = Range("ASOFDATE")
qry.Execute
Application.Wait DateAdd("s", 2, Now) ' Wait for 2 seconds
Set qry = db.QueryDefs("qry_LIMIT_HIST") ' Run Append Query
qry.Parameters(0) = Range("ASOFDATE")
qry.Execute
acc.DoCmd.SetWarnings True
' SELECT ALL DATA
Set qry = db.QueryDefs("qry_TBL_DATA")
Worksheets("Impact Analysis").Range("A11:L5000").Clear
Set daoRcd = qry.OpenRecordset
ThisWorkbook.Worksheets("Impact Analysis").Range("A11").CopyFromRecordset daoRcd
conn.Close
Set conn = Nothing
End Sub
我的參考設置如下。
如果我通過反復按 F8 來逐步執行代碼,則一切正常。 如果我通過按鈕單擊事件觸發代碼,則會收到以下錯誤消息:“運行時錯誤 462:遠程服務器計算機不存在或不可用”
當我檢查代碼時,我看到 db 實際上設置為空!!
我猜這與我的一個引用或我聲明一個變量的方式有關,但這只是一個猜測。 我不確定。 任何想法都會非常受歡迎!! 謝謝!!
你的代碼沒有任何問題。 在中斷點(即突出顯示的行)處,變量“db”未設置為任何內容。 轉到下一行,然后檢查 db 的值,它應該設置為數據庫的名稱。
至於手頭的實際問題,您可能需要查看此帖子:
遇到錯誤 462:通過 Excel VBA 使用 WORD 時,遠程服務器計算機不存在
即使它與 Word 打交道,它也可能為您提供有關它為什么會發生在您身上的線索。
還有這篇文章也可能有幫助:
第二次運行 VBA 代碼時出現“運行時錯誤 462:遠程服務器計算機不存在或不可用”
由於您沒有發布整個代碼,因此很難判斷可能是什么問題。 如果其中任何一項有幫助,請回來並在此處發表評論,解釋您做了什么以及如何修復它,以防其他人發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.