ms-access - 访问具有多对多关系的两个列表框
问题描述
我有一个 Access2017 数据库。在一个表单上,我有“PLCS Group”多选列表框和“IPS Elements”第二个多选列表框。
-----FIRST LIST-----
ID
GRAPES
APPLES
CHERRIES
LETTUCE
--------------------
-----SECOND LIST----
FK
COLD
DARK
LEAVE IN SUN
DIED
---------------------
So if someone selected GRAPES and APPLES from first list. And selected COLD,DIED from second list
This is what the second table should have it it.
GRAPES,COLD
GRAPES,DIED
APPLES,COLD
APPLES,DIED
我尝试嵌套第二个列表框的记录,但没有更新表。我将代码更改为建议的内容,但现在我收到错误 3020“更新或取消更新,没有添加新或编辑”
我在其中有 AddNew 语句我不确定是什么使它无法识别它们。如果我注释掉第二个循环,则保存第一个列表框项目。这是我的更新代码:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim ctl As Control
Dim ctl2 As Control
Dim varItem As Variant
Dim varItem2 As Variant
Set db = CurrentDb()
Set rs = db.OpenRecordset("ProposalTracker3", dbOpenDynaset, dbAppendOnly)
Set rs2 = db.OpenRecordset("IPSElementsDetails", dbOpenDynaset, dbAppendOnly)
Set ctl = Me.PLCSGroupListBox
Set ctl2 = Me.IPSList
For Each varItem In ctl.ItemsSelected
rs.AddNew
rs!GACP = ctl.ItemData(varItem)
rs.Update
For Each varItem2 In ctl2.ItemsSelected
rs2.AddNew
rs2!ProposalID = Me.txtID
rs2!Element = ctl2.ItemData(varItem2)
rs.Update
Next varItem2
rs2.Close
Next varItem
rs.Close
db.Close
解决方案
似乎您想要两个列表框的选定项目的所有可能组合。您将条目与两个嵌套循环结合起来
Set db = CurrentDb()
Set rs = db.OpenRecordset("DestinationTable", dbOpenDynaset, dbAppendOnly)
Set lb1 = Me.PLCSGroupListBox
Set lb2 = Me.IPSList
For Each item1 In lb1.ItemsSelected
For Each item2 In lb2.ItemsSelected
rs.AddNew
rs!Somefield = lb1.ItemData(item1) & ',' & lb2.ItemData(item2)
rs!ProposalID = Me.ID
rs.Update
Next item2
Next item1
rs.Close
db.Close
或者,也许您想将两个列表框中的值添加到两个单独的字段中
rs.AddNew
rs!Somefield = lb1.ItemData(item1)
rs!Anotherfield = lb2.ItemData(item2)
...
推荐阅读
- android - 如何在 Android Studio 中混淆 jar 库?
- javascript - 如何在 Nightwatch 中启动 Safari 浏览器的最大化窗口
- javascript - 如何在 forEach 循环中等待?
- javascript - 使用 useEffect 将反应查询状态移动到 useState
- symfony - Symfony:无法从 Symfony Drive 以外的其他设备创建新项目
- laravel - Laravel 多级关系以及与父相关的对应表
- qml - 在密码文本字段上,我想应用一个不隐藏显示密码的选项,供用户在 qml 中检查和确认
- angular - 将 debounceTime 添加到 HttpInterceptor
- python-3.x - 检查 Python 中是否存在带有 pathlib 的文件并返回假阴性
- javascript - 使用 React 从功能组件中的类组件访问 ref