Microsoft Access 2010でSharePoint Webサイトにアップロードするフォームを作成しています(初めてこれを行う)。私はコマンドボタンを持つフォームを持っています。私は2つのことをしたい、すべての単一の値の項目を1つのテーブルに挿入し、リストボックスのすべての選択を別のテーブルに挿入します。Microsoft Access VBAマルチセレクトリストボックス挿入クエリ
"DoCmd.OpenQuery 'Add Goal'を最上部に配置すると、単一の値アイテムが完全に追加されますが、コードを底に置くと、何もしない。どちらの場合でも、リストボックスの項目は2番目のテーブルに追加されません。ここに私のコードです:
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
私はSQLが何かをしているのに驚いています。また、Employee_Nameがテキストフィールドの場合、アポストロフィデリミタが必要です: '= '"&vItem& "'" ' – June7
私の申し訳ありません明確にすると、forループ内のSQLは機能しません(少なくとも私はまだ分かりません)。 "Add Goal"クエリは、変数の宣言の前に置くと機能しますが、上に示したように最後に置いた場合は機能しません。あなたが提案した変更を加えましたが、コマンドボタンを押しても何も起こりません。 – aashir272
なぜ問合せオブジェクトを開くのですか? – June7