【发布时间】:2012-07-31 10:51:20
【问题描述】:
我希望我能问这个问题。 我在表单上有一个列表框(访问 2007)并将其设置为“简单”,以便我可以多选。 我正在尝试根据列表框中的选择更新表中的多个列。我有几个文本框,我想将它们用作更新表格的信息。 我有一个循环,无论选择了多少项目,它都只更新表中的第一条记录。 我想我明白为什么它只更新我循环中的第一条记录但不确定
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
Dim i As Variant
For Each i In Listbox.ItemsSelected
With rs
.Edit
!Col1 = Me.Textbox1
!Col2 = Me.Textbox2
!Col3 = Me.Textbox3
.Update
End With
Next
我认为这是因为我没有在循环中指定要更新表的“位置”,但我不知道如何在此循环中执行此操作。我将在列表框中(位于位置 1、3 和 4)中有 3 列,所有这些列都需要包含在内,以指定表中需要更新的记录。我也尝试过使用带有 DoCmd.RunSql 的 sql 查询,但似乎无法更改 ListIndex 中间查询的焦点。为我缺乏知识而道歉,我对visual basic还是很陌生。 请帮忙
【问题讨论】:
-
我会,但我完全不明白文本框的用途。多列列表框选择不是您要在表格中更新的内容吗?据我了解,您不需要 .edit / .update,而是执行 INSERT 或 UPDATE SQL 语句...
-
嗨,Kim,我正在使用列表框来选择表中需要更改的行。我正在使用文本框将信息放在这些行的列中。我遇到的问题是我在列表框中有 3 列指示需要在表中更改哪些记录,并且我似乎无法更改 listindex 中间查询的焦点,这就是为什么我认为它更容易使用 .edit/.update。感谢您的回复:-)
-
所以你选择的每一行的(文本框)信息都是一样的?
-
您好 TheRedOne,您可以使用代码按钮
{}格式化代码。 -
是的,基本上我正在更新培训数据库,其中包含日期、培训师、评论……诸如此类的东西。我希望能够选择多个人并为所有人添加相同的信息..!