Ms access 如何将列表框中的选定项添加到表中?

Ms access 如何将列表框中的选定项添加到表中?,ms-access,listbox,vba,Ms Access,Listbox,Vba,我还是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 Di

我还是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

如果要将所有值存储在一个由“,”分割的字符串中,则将
rs.AddNew
移动到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
For Each varItem In lstBox.ItemsSelected
    strCriteria =  lstBox.ItemData(varItem)
    rs.AddNew
    rs!NAME_OF_FIELD = strCriteria 
    rs.Update
Next varItem

如果要将所有值存储在单独的注册表中(因此ID=1选择了一个项,ID=2选择了下一个项,依此类推),请将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
For Each varItem In lstBox.ItemsSelected
    strCriteria =  lstBox.ItemData(varItem)
    rs.AddNew
    rs!NAME_OF_FIELD = strCriteria 
    rs.Update
Next varItem

非常感谢。我会立即尝试并报告它是如何进行的;)如果你对我写的东西有任何疑问,尽管问吧。对不起,同时我还有其他工作要做。从列表中选择的项目似乎没有添加到表中。此表显示在一个子窗体中,其中显示了“希望从列表框添加”表中的条目。实际上,没有错误消息,因此我认为代码必须是正确的。但是正如我上面所说的,在执行代码之后,没有任何项被添加到表中。是否可以使用多个字段将项目添加到?例如,对于lstBox.itemselected strCriteria=lstBox.ItemData(varItem)rs.AddNew rs中的每个变量项,使用
!字段的名称=标准!字段2的名称=标准rs。更新下一个变量
Sure。它就像任何变量一样工作。确保您的字段是正确的数据类型。字符串称为“简短文本”或访问表上的某个内容。因此,打开T_Auswertung,并确保您的NAME_OF_字段具有适当的数据类型。您不会因为DoCmd.SetWarnings(False)而收到错误,我假设您必须将其切换为true(从未使用过它,但文档中似乎就是这样做的)