VBA Access从级联列表框传递和编辑记录,并重新查询列表框



我有一个特别难处理的问题。我正在编写访问表单。此表单包含大量级联数据连接。它充当数据库的筛选、选择、审查和编辑界面。

以下是我对设计的基本描述;-ComboBox1从引用表填充其数据,并级联更新到ComboBox2。-ComboBox2根据ComboBox1的选择进行填充,然后将信息级联到ListBox1,ListBox1运行查询以生成记录列表。-在Listbox1中选择一条记录会将列表的各个隐藏列填充到匹配的文本和comboBox字段中,以进行显示/编辑。它还通过单击级联填充Listbox2,使用查询从与ListBox1中所选记录相关的不同表中提取记录。-我有许多按钮来处理添加、删除和编辑ListBox1查询其信息的表的记录。到目前为止,一切都很正常(部分感谢回答我其他问题的人的帮助)我现在陷入的困境是试图创建类似的按钮,这些按钮与ListBox2提取记录的表(添加/编辑/删除)具有相同的功能我已经成功添加了添加按钮,但在编辑功能上卡住了。

我有一个按钮,我正试图为它构建一个"OnClick"事件。它需要从列表框中提取所选记录,并将其打开的表单设置为该特定记录。我知道我可以用listbox.selected.value从列表框中提取选定的值,但这如何转化为DoCmd。OpenForm语法

DoCmd。要调整的OpenForm参数是可选的WhereConditionDataModeWhereCondition接受不带Where的SQL Where子句。此限制在打开表单之前应用于表单的行源。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

最新更新