我有一个特别难以处理的问题。 我正在处理一个表单以进行访问。此表单包含大量级联数据连接。 它用作数据库的过滤,选择,审阅和编辑界面。
下面我列出了设计的基本描述; -ComboBox1从参考表填充其数据,并级联更新到ComboBox2。 -ComboBox2根据ComboBox1的选择填充,然后将信息级联到ListBox1,ListBox1运行查询以生成记录列表。 - 在Listbox1中选择记录会将列表的各个隐藏列填充到匹配的text和comboBox字段中以进行显示/编辑。它还在点击级联Populate Listbox2上使用查询来从与ListBox1中的所选记录相关的不同表中提取记录。 - 我有许多按钮来处理添加,删除和编辑ListBox1查询其信息的表的记录。 到目前为止的一切都正常工作(部分原因是感谢人们回答我的其他问题) 我现在被卡住的地方是尝试创建类似的按钮,这些按钮与Table一起提供相同的功能,其中ListBox2绘制其记录(添加/编辑/删除) 我已经成功添加了“添加”按钮,但已经卡在编辑功能上。
我有一个按钮,我正在尝试为其构建一个“OnClick”事件。它需要从列表框中提取所选记录,并将其打开的表单设置为该特定记录。 我知道我可以使用listbox.selected.value从列表框中提取所选值,但是如何将其转换为DoCmd.OpenForm语法?
答案 0 :(得分:0)
您要调整的DoCmd.OpenForm参数是可选的WhereCondition
和DataMode
。 WhereCondition
接受没有单词where的SQL Where子句。在表单打开之前,此限制将应用于表单的rowsource。
DataMode
可以覆盖表单为AllowEdits和DataEntry保存的设置。听起来你想在这种情况下使用acFormEdit。
Private Sub CommandFoo_OnClick()
Dim strWhere As String
'Do yourself a favor and build the WhereCondition in a string variable so that you can see what you've built.
'Surround text values in double quotes.
'Surround dates with # and specify in m/d/yyyy or yyyy-mm-dd
'Make sure you build in spaces in as necessary.
strWhere = "NumberField1=" & ListBox1.Columns(0) & " AND TextField2=" & Chr(34) & ListBox1.Columns(1) & Chr(34)
Debug.Print strWhere
DoCmd.OpenForm FormName:="YourFormName", WhereCondition:=strWhere, DataMode=acFormEdit
End Sub