繁体   English   中英

Microsoft Access VBA多选列表框插入查询

[英]microsoft access vba multi-select listbox insert query

我正在Microsoft Access 2010中创建一个表单以上载到SharePoint网站(这是第一次)。 我有一个带有命令按钮的表单,我想使用它来做两件事,将所有单个值项插入一个表中,并将列表框中的所有选择项插入一个单独的表中。

我遇到的问题是,当我在顶部放置“ DoCmd.OpenQuery'Add Goal'”时,它完美地添加了单个值项,但是当我将其放置在底部时,代码却无能为力。 无论哪种情况,列表框项目都不会添加到第二个表中。 这是我的代码:

Private Sub cmdAddGoal_Click()
    On Error GoTo cmdAddGoal_Click_Err

    Dim strSQL As String
    Dim vItem As Variant

    If IsNull(lstIndAcc) Then
        Exit Sub
    End If

    With Me.lstIndAcc
        For Each vItem In .ItemsSelected
            If Not IsNull(vItem) Then
                strSQL = "INSERT INTO Individuals_Accountable (Goal_ID, Employee_ID)" _
                & "SELECT Goal_ID, Employee_ID FROM Goal, Employee WHERE Goal.Activites_And_Milestones = [Forms]![Add Goal]![txtActivities] AND" _
                & "Employee.Employee_Name = " & vItem
            End If
            DoCmd.OpenQuery strSQL
        Next
    End With
    DoCmd.OpenQuery "Add Goal"

    cmdAddGoal_Click_Exit:
    Exit Sub

    cmdAddGoal_Click_Err:
    MsgBox Error$
    Resume cmdAddGoal_Click_Exit

End Sub

抱歉,在发表评论之前,我应该更仔细地看一下代码。

OpenQuery用于打开查询对象,而不运行在VBA中构造的SQL语句。

使用DoCmd.RunSQL strSQL或我更喜欢CurrentDb.Execute strSQL

除非您还具有禁用警告的代码,否则第一个将生成警告弹出窗口。

DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM