[英]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.