2016-07-12 2 views
1

제목에 업데이트 문 내에서 VBA 변수를 사용하려고합니다. 이것은 범위의 각 셀을 반복하고 해당 반복 셀 참조에 해당하는 테이블 내의 값에서 워크 시트의 값을 뺀 것이기 때문에 사용됩니다. 그러나 명령문에 "너무 많은 괄호가 있습니다."라는 오류가 발생합니다. 그러나 이것은 이상한 일입니다. b/c 나는 SQL 구문을 직접 액세스하지 못하게했습니다. 뭔가 놓친 거 같아? VBA 변수를Access UPDATE 문에서 VBA 변수를 사용하려고 시도했습니다.

코드 : 변수없이

Private Sub UPDIZZLE() 
    Dim rCell As Range 
    Dim rRng As Range 
    Dim con As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Dim strConnection As String 
    Dim QUV As Long 
    Dim IID As String 

    Set rRng = ActiveWorkbook.Sheets("Sheet1").Range("b2:b100") 

    For Each rCell In rRng.Cells 
     If rCell <> "" And rCell.Value <> 0 Then 
      IID = rCell 
      QUV = rCell.Offset(0,x).Value 
      strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ashleysaurus\Desktop" & "\" & "xyzmanu3.accdb" 
      con.Open strConnection 
      rs.Open "UPDATE Stuff SET Stuff.Quantity = Quantity-" & QUV & " WHERE (((Stuff.[ItemID])=" & IID & "));", con 
      con.Close 
     End If 
    Next rCell 

End Sub 

코드 : 나는 코드의 두 버전 게시 할 예정 문자열이 아닌 그것이 있어야 IID으로

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ashleysaurus\Desktop" & "\" & "xyzmanu3.accdb" 
    con.Open strConnection 
    rs.Open "UPDATE Stuff SET Stuff.Quantity = Quantity-1 WHERE (((Stuff.[ItemID])=Thingamagig));", con 
    con.Close 
+0

'IID' 값 자체에 괄호가 들어있을 수 있습니까? – RGA

+2

'IID'는'rs.Open '문자열이 아니어야합니다. UPDATE Stuff SET Stuff.Quantity = Quantity- "& QUV &"WHERE ((항목 ([ItemID]) =' "& IID & "'));" ('IID'를 둘러싼 작은 따옴표) –

+0

당신은 내가 멍청한 멍청한 실수를 저질렀다는 것을 알고 있습니다. 다시 시도해보고 다시 게시하십시오. –

답변

1

인을

rs.Open "UPDATE Stuff SET Stuff.Quantity = Quantity-" & QUV & " WHERE (((Stuff.[ItemID])='" & IID & "'));", con 

(작은 따옴표 IID)

관련 문제