![](/img/trans.png)
[英]Returning more than one value on a conditional inner join statement (VBA/SQL)
[英]VBA SQL Returning Statement, Not Value
我正在使用一個列表框,當您單擊一行時,它將填充工作表上的字段。 因此,如果單擊工作票18,它將從表中獲取部門,優先級,受讓人等,並填寫工作訂單。 當我單擊該行時,只需編寫以下內容,我就會彈出一個帶有票號的msgbox:
MsgBox Me.Work_Order_List.Value
然后當我嘗試
ticNum = Me.Work_Order_List.Value
strSQL = "SELECT Description_Of_Problem FROM Work_Orders WHERE " & ticNum & " = Ticket_Number;"
Debug.Print strSQL
Me.Notes = strSQL
我的注釋框將打印SQL語句,但從不運行。 我在這里做錯了什么? 我將需要填充許多字段,所以還有更快的方法嗎?
謝謝
Me.Notes = DLookup("Description_Of_Problem", "Work_Orders", "Ticket_Number=" & ticNum)
那正是我想要的。 我能夠刪除其余的代碼,並將其用於每個字段。 謝謝HansUp!
您沒有運行查詢。 如果要將數據填充到字段中,則應將表單的記錄源設置為sql。
Me.RecordSource = "SELECT Description_Of_Problem, Other, Etc FROM Work_Orders"
僅當您具有綁定到字段的控件時,以上方法才有效,但這是填充許多控件的最簡單方法。
最好的開始方法是使用表單向導基於Work_Orders創建一個表單。 然后,您可以通過創建一個組合框來選擇表單上的記錄,從而完全避免任何編碼。 然后,用戶可以選擇一個票證並跳轉到該記錄。 也有一個向導。
Dim rs As DAO.Recordset
ticNum = Me.Work_Order_List.Value
strSQL = "SELECT Description_Of_Problem FROM Work_Orders WHERE Ticket_Number =" _
& ticNum
Debug.Print strSQL
Set rs = CurrentDB.OpenRecordset strSQL
Me.Notes = rs!Description_Of_Problem
裝訂表格
基於表或查詢啟動表單向導
按照步驟操作,最終在設計視圖中顯示一個表單
您似乎很喜歡列表框,有多種方法可以瀏覽記錄。 添加一個列表框,確保已選擇向導。
選擇查找當前表單上的記錄
並選擇要顯示在列表框中的項目
選擇一個項目以在表單上找到它。
這就是使其成為綁定形式,記錄源的原因,記錄源可以是表名,查詢名或SQL語句。 請注意,要自動填寫的控件已綁定到字段名稱,但是用於查找記錄的列表框被標記為“未綁定”。
在必須進行多次編輯之后,我發現DLookup不適用於多個字段和未綁定的表單。 所以最后我決定:
Dim myR As Recordset
Set myR = CurrentDb.OpenRecordset("Work_Orders", dbOpenDynaset)
myR.FindFirst ("[Ticket_Number] = " & Me.Work_Order_List.Value & "")
Me.Update_Status = myR![Current_Status]
Me.Downtime_Code = myR![Downtime_Code]
Me.Date_For_Completion = myR![Date_For_Completion]
Me.Notes = myR![Notes_From_Assignee]
Me.Description_Box = myR![Description_Of_Problem]
Set myR = Nothing
我使用myR.FindFirst來獲取我要查找的行。 由於我的票務系統仍處於測試階段,因此我只有約100條記錄,但是我希望當.FindFirst達到10000+時,它將能夠快速搜索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.