我还是VBA的新手,非常感谢一些帮助。 我需要将列表框中的选定项添加到表中,但每次我尝试显示的表都没有值。 这是代码:
Private Sub BefehlX_Click()
Dim db As Database
Dim rs As Recordset
Dim qdf As QueryDef
Dim varItem As Variant
Dim strCriteria As String
Dim strSQL As String
Dim lstBox As ListBox`
DoCmd.SetWarnings (False)
Set db = CurrentDb()
Set rs = db.OpenRecordset("T_Auswertung", dbOpenDynaset)
Set qdf = db.QueryDefs("Abfrage4")
Set lstBox = Me!ListField1
For Each varItem In lstBox.ItemsSelected
strCriteria = strCriteria & ",'" & lstBox.ItemData(varItem) & "'"
rs.AddNew
'what should be placed here?`
rs.Update
Next varItem
Set rs = Nothing
If Len(strCriteria) = 0 Then
MsgBox "Sie haben keine Queues gewählt!" _
, vbExclamation, "Nichts zu finden!"
Exit Sub
End If
strCriteria = Right(strCriteria, Len(strCriteria) - 1)
DoCmd.SetWarnings (True)
End Sub
答案 0 :(得分:0)
如果要将所有值存储在由“,”拆分的单个字符串中,请将recorset.Add移动到For循环外部:
For Each varItem In lstBox.ItemsSelected
strCriteria = strCriteria & ",'" & lstBox.ItemData(varItem) & "'"
Next varItem
'removes first ","
strCriteria = Right(strCriteria , Len(strCriteria ) - 1)
rs.AddNew
rs!NAME_OF_FIELD = strCriteria
rs.Update
如果要将所有值存储在单独的注册表中(因此ID = 1已选中item,而ID = 2具有下一个,依此类推)将add添加到For循环中:
For Each varItem In lstBox.ItemsSelected
strCriteria = lstBox.ItemData(varItem)
rs.AddNew
rs!NAME_OF_FIELD = strCriteria
rs.Update
Next varItem