2017-05-23 1 views
0

Microsoft Access 2010에서 양식을 만들어 SharePoint 웹 사이트에 업로드합니다 (처음이 작업을 수행함). 내가 가진 두 가지 일을하고 싶습니다 명령 단추와 양식이 하나의 테이블에 모든 단일 값 항목을 삽입하고 목록 상자에있는 모든 선택을 별도의 테이블에 삽입하십시오.Microsoft Access VBA 다중 선택 목록 상자 삽입 쿼리

내가 겪고있는 문제는 "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 
+1

나는 SQL이하는 일에 놀랐다. Employee_Name이 텍스트 필드 인 경우, 아포스트로피 구분 기호가 필요합니다 :'= ' "& vItem &"' "' – June7

+0

내 사과는 안됩니다. 명백히, for 루프 내부의 SQL은 작동하지 않는다 (적어도 나는 아직 확실하지 않다). "Add Goal"쿼리는 변수의 선언 전에 넣을 때 작동하지만 위의 그림과 같이 끝에 넣으면 작동하지 않습니다. 내가 제안한 변경 사항을 만들었지 만 명령 단추를 누르면 아무 일도 일어나지 않습니다. – aashir272

+0

왜 어쨌든 쿼리 개체를여시겠습니까? – June7

답변

0

미안 해요, 코멘트하기 전에 코드를 좀 더 자세히 봤어야 : 여기 내 코드입니다.

OpenQuery는 VBA에서 생성 된 SQL 문을 실행하지 않고 쿼리 개체를 여는 데 사용됩니다.

사용 DoCmd.RunSQL strSQL 아니면

당신은 또한 경고를 해제하는 코드를하지 않으면 경고 팝업을 생성합니다 첫 번째 CurrentDb.Execute strSQL을 선호합니다.

DoCmd.SetWarnings False 
DoCmd.RunSQL strSQL 
DoCmd.SetWarnings True 
+0

효과가있었습니다! 몇 가지 기본 디버깅을 수행해야했지만이를 파악하는 것이 어려웠습니다. 고맙습니다! – aashir272

+0

답변으로 문제가 해결되면 승인 표시가 될 수 있습니다. – June7

관련 문제