【发布时间】:2021-12-15 22:05:18
【问题描述】:
所以我有一个列表框,它显示使用 select sql 查询在 Order 表中输入的所有订单。现在我还想添加从列表框中编辑项目的功能,我看到右键单击编辑列表项选项,但是当我单击它时,它只是打开表单但不填充字段。该表单具有未绑定的文本框,但我无法弄清楚如何根据右键单击的条目来填充它们。我还尝试从 vba 打开目标表单并使用以下代码通过 vba 填写字段
Private Sub editrecordbttn_Click()
Dim valSelect As Variant
Dim v As Variant
Dim selector As Variant
Dim strValue As String ' just used for the demonstration
Dim splitvalue() As String
Dim selectedsampid As String
Dim selectedcusid As String
Dim Records As DAO.Recordset
Dim SQLcus As String
Dim SQLsamp As String
For Each valSelect In Me.searchlistbox.ItemsSelected
strValue = strValue & "" & Me.searchlistbox.ItemData(valSelect) & "," & "" & Me.searchlistbox.Column(1, valSelect) & ","
Next valSelect
' to remove trailing comma
strValue = Left(strValue, Len(strValue) - 1)
splitvalue() = Split(strValue, ",")
selectedsampid = splitvalue(0)
selectedcusid = splitvalue(1)
DoCmd.OpenForm ("Add Sample")
Forms![Add Sample].fnametxt.SetFocus
'query and fill cus info
SQLcus = "SELECT * FROM CustomerInfo WHERE CusID = '" & selectedcusid & "';"
Set Records = CurrentDb.OpenRecordset(SQLcus)
Me!clienttypetxt = Records![Client type].Value
结束子
【问题讨论】:
-
为什么要使用未绑定的表单?为什么不绑定表单并使用 DoCmd.OpenForm 的 WHERE CONDITION 参数应用过滤条件?
-
@June7 好吧,我用来添加订单的表单具有未绑定的控件,因为它需要将表单数据分成多个表,我想重用相同的表单,但如果它适用于绑定表单,我会试试看,我只是不知道如何为要打开的新表单设置记录集
-
为什么一个表格可以输入多个表格?您显示的 SQL 仅引用一个表,那么如何涉及多个表?编辑问题以显示示例数据结构。我从未使用未绑定的表单进行数据输入/编辑。代码对我来说毫无意义。为什么要构建一个 CSV 字符串然后拆分它?