我正在Microsoft Access 2010中创建一个表单以上传到SharePoint网站(第一次这样做)。我有一个带有命令按钮的表单我想做两件事,将所有单值项目插入到一个表格中,并将列表框中的所有选项插入到单独的表格中。
我遇到的问题是,当我在顶部放置“DoCmd.OpenQuery'添加目标'”时,它会完美地添加单个值项目,但是当我把它放在底部时,代码不会做任何事情。在任何一种情况下,列表框项都不会添加到第二个表中。这是我的代码:
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
答案 0 :(得分:0)
抱歉,我应该在评论之前仔细查看代码。
OpenQuery用于打开查询对象,而不是运行在VBA中构造的SQL语句。
使用DoCmd.RunSQL strSQL
或我更喜欢CurrentDb.Execute strSQL
第一个将生成警告弹出窗口,除非您还有禁用警告的代码。
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True