我有一个列表框,我可以在周一至周五选择。我可以在列表框中选择我想要的天数,如果我想要的话,所有这些都可以。我想知道如何将列表框的值插入到我的表中。
这是我到目前为止编写的代码:
Private Sub Command499_Click()
Set RstRecSet = Nothing
Set db = CurrentDb
Dim dateDay As String
Dim dateWeek As String
MsgBox (lstDateDay.Selected)
''dateWeek = lstDateWeek.Value
db.Execute " INSERT INTO tblContacts (DateDay, DateWeek)Values" & "('" & dateDay & "', '" & dateWeek & "');"
db.Close
End Sub
正如你所看到的,我一直在尝试很多不同的事情。我的问题是获取列表框的值;即使已选择数据,它仍会显示为null。我得到的确切错误是:"无效使用Null。"
让我知道你的想法。
谢谢, 沙拉
编辑:
Set rs = db.OpenRecordset("tblContacts")
For Each itm In lstDateWeek.ItemsSelected
rs.AddNew
rs!dateWeek = lstDateWeek.ItemData(itm)
rs!dateDay = itm
rs.Update
Next
rs.Close
Set rs = Nothing
Set db = Nothing
dateDay和dateWeek是tblContacts中的列。
答案 0 :(得分:0)
您需要使用ItemsSelected集合来获取“多选”列表框中所选项的索引,然后迭代它们并使用索引来引用存储在ItemData集合中的行。作为此迭代的一部分,只需创建一个记录集并添加字段并进行更新。有不同的方法来处理这个部分,但我喜欢这个如下所示。
要使用我的示例,只需创建一个名为tblTest的表和两列Description(文本)和Day作为数字。 创建一个表单并添加名为DaysOfWeek的多选列表框。将它作为ValueList填入星期几,然后添加一个我标记为Store的按钮。
将以下代码粘贴到按钮点击事件中并尝试
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblTest")
For Each itm In DaysOfWeek.ItemsSelected
rs.AddNew
rs!Description = DaysOfWeek.ItemData(itm)
rs!Day = itm
rs.Update
Next
rs.Close
Set rs = Nothing
Set db = Nothing
我的活动程序如下:
Private Sub Command19_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblTest")
For Each itm In DaysOfWeek.ItemsSelected
rs.AddNew
rs!Description = DaysOfWeek.ItemData(itm)
rs!Day = itm
rs.Update
Next
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
这可以通过为INSERT语句构建SELECT字符串来完成ADO调用,但对我来说这很简单..如果您有任何问题,请告诉我。如果我能弄清楚如何附加我的示例数据库,我会。