我正在使用列表框,当您单击某行时,它将填充工作表上的字段。因此,如果我点击工作单18,它将从表中获取部门,优先级,受让人等,并填写工作单。当我点击该行时,只需写下:
,我会弹出一个带有票号的msgboxMsgBox 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语句但从不运行。我在这做错了什么?我需要填充许多字段,所以还有更快的方法吗?
由于
答案 0 :(得分:1)
Me.Notes = DLookup("Description_Of_Problem", "Work_Orders", "Ticket_Number=" & ticNum)
这正是我所寻找的。我能够删除其余的代码并将其用于每个字段。谢谢HansUp!
答案 1 :(得分:0)
您没有运行查询。如果希望数据填充到字段中,则应将表单的记录源设置为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语句。请注意,要自动填充的控件绑定到字段名称,但查找记录的列表框标记为“未绑定”。
答案 2 :(得分:0)
在进行多次编辑后,我发现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+时快速搜索。