2016-07-12 13 views
1

タイトルでは、更新ステートメント内でVBA変数を使用しようとしています。これは、範囲内の各セルをループし、その繰り返しセル参照に対応するテーブル内の値からワークシートの値を減算するために使用されています。しかし、ステートメントは "括弧が多すぎます"というエラーを出します。しかし、これは私にとって奇妙なことです。私は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

あなたは私がかなり愚かなnoobの間違いを作って、それを試してポストバックすることができたことを知っています –

答えて

1

を、それが

rs.Open "UPDATE Stuff SET Stuff.Quantity = Quantity-" & QUV & " WHERE (((Stuff.[ItemID])='" & IID & "'));", con 
すべきではない文字列です。

(一重引用符:IID)

関連する問題