(假條目和檔案目錄)
這是我在試圖運行一個從查詢中獲取數值并將其分配到word.docx上的一個書簽位置的宏時得到的錯誤
這是它失敗的那一行
Set rs = CurrentDb.OpenRecordset("Query1", dbOpenDynaset)
這就是vba代碼所取值的查詢
SELECT Table1.ProjectNo, Table1.FirstName, Table1.LastName, Table1.Phone, Table1.ProjectName, Table1.EMail, Table1.Client
FROM Table1
WHERE (((Table1.LastName) Like "*" & [Form]! [Form3]! [SearchBox] & "*")。
Private Sub Command9_Click()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Dim rs As DAO.Recordset
Set wApp = New Word.Application
Set wDoc = wApp.Documents.Open("C:DocumentsECORtester.docx")
Set rs = CurrentDb.OpenRecordset("Query1", dbOpenDynaset)
If Not rs.EOF Then rs.MoveFirst
Do Until rs.EOF
wDoc.Bookmarks("Attention").Range.Text = Nz(rs![FirstName], "") & Nz(rs![LastName], ")
wDoc.Bookmarks("Client").Range.Text = Nz(rs![Client], ")
wDoc.Bookmarks("Email").Range.Text = Nz(rs![Email], "")
wDoc.Bookmarks("Phone").Range.Text = Nz(rs![Phone], "")
wDoc.Bookmarks("ProjectName").Range.Text = Nz(rs![ProjectName], "" )
wDoc.Bookmarks("ProjectNumber").Range.Text = Nz(rs![ProjectNo], "")
wDoc.SaveAs2 "C:Documents" & rs!ProjectNumber & "_ECORtester.docx"。
rs.MoveNext
Loop
End Sub
uj5u.com熱心網友回復:
你的WHERE子句中有一個引數沒有被設定。
將其定義為一個querydef,并從中創建記錄集。
Dim qdf As QueryDef
Dim rs As Recordset
Set qdf = CurrentDb.QueryDefs("Query1"/span>)
qdf.Parameters("[Forms]![Form3]![SearchBox]") = [Forms]![Form3]!
Set rs = qdf.OpenRecordset
uj5u.com熱心網友回復:
基于具有未定義/未設定動態引數的查詢物件的記錄集將不會作業。相反,基于表的記錄集和在VBA中建立SQL。
strSQL = "SELECT * FROM Table1 WHERE LastName Like "* & [Form]! [Form3]! [SearchBox] & "* "
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
使用帶有通配符的LIKE可能會回傳多個客戶。如果有多個具有相同/相似姓氏的人,他們都可以被檢索到。如果你只想要一個客戶,那么使用唯一的記錄ID作為過濾條件。組合框可能比自由格式的輸入文本框更有用。通過代碼,組合框可以實作模式匹配和 "邊輸入邊過濾 "的功能,然后從列出的專案中進行選擇,并且可以獲得唯一的ID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/307753.html
標籤:
上一篇:會話狀態在每次登錄時被重置

