Results 1 to 6 of 6
  1. #1
    tagteam is offline Competent Performer
    Windows 7 64bit Access 2010 32bit
    Join Date
    Mar 2013
    Posts
    486

    best way to write update query in vba

    I have googled and searched this forum and have found several different ways to run an update query in but i can get them to work quite correctly.



    What is the cleanest way to run an update query in vba

    I am trying :

    Dim dbs As Database
    Dim lngRowsAffected As Long
    Dim lngRowsUpdated As Long
    Dim UpdateBID As String
    UpdateBID = Me.BillingInvoiceID
    Set dbs = CurrentDb




    lngRowsAffected = dbs.RecordsAffected


    dbs.Execute "Update tbl_RissData Set tbl_RissData.BID = UpdateBID ;", dbFailOnError

    lngRowsUpdated = dbs.RecordsAffected

  2. #2
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    You have to concatenate the variable into the string. If it's numeric:


    dbs.Execute "Update tbl_RissData Set tbl_RissData.BID = " & UpdateBID, dbFailOnError

    if text:


    dbs.Execute "Update tbl_RissData Set tbl_RissData.BID = '" & UpdateBID & "'", dbFailOnError
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  3. #3
    tagteam is offline Competent Performer
    Windows 7 64bit Access 2010 32bit
    Join Date
    Mar 2013
    Posts
    486
    Ok, I have simplified the code to this

    Dim dbs As Database
    Dim UpdateBID As String
    Dim CurrentRissID As Integer
    Dim strSQL As String
    UpdateBID = Me.BillingInvoiceID
    CurrentRissID = Me.RISSID




    Debug.Print "Update Bid is " & UpdateBID
    Debug.Print "CurrentRissID is " & CurrentRissID


    strSQL = "Update tbl_RissData Set tbl_RissData.BID = " & UpdateBID & " Where tbl_RissData.Id = " & CurrentRissID & ";"


    Debug.Print "strSQL is " & strSQL


    CurrentDb.Execute strSQL, dbFailOnError

    My debug statements show
    Update Bid is FRAL-081125
    CurrentRissID is 1733
    strSQL is Update tbl_RissData Set tbl_RissData.BID = FRAL-081125 Where tbl_RissData.Id = 1733;

    it looks like everything is fine but I am still getting: Run-time error '3061'; Too few parameters. Expected 1.

  4. #4
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    Your value is text so you need the single quotes around it.
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  5. #5
    tagteam is offline Competent Performer
    Windows 7 64bit Access 2010 32bit
    Join Date
    Mar 2013
    Posts
    486
    Ok, great, I got it to work with

    strSQL = "Update tbl_RissData Set tbl_RissData.BID = '" & UpdateBID & "' Where tbl_RissData.Id = " & CurrentRissID & ";"

    For those learning like me it is Single Quote and then Double Quote

    ' " & UpdateBID & " '

  6. #6
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    Glad you got it working.
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Write Conflict When Trying To Update Table
    By jo15765 in forum Access
    Replies: 20
    Last Post: 09-02-2016, 09:12 AM
  2. Replies: 3
    Last Post: 08-06-2012, 03:29 PM
  3. Write Conflict After Update to 2010
    By cnelson in forum Access
    Replies: 5
    Last Post: 08-24-2011, 11:01 AM
  4. How would I write this query?
    By tigers in forum Queries
    Replies: 1
    Last Post: 02-08-2010, 08:29 AM
  5. write a query how to???
    By flamingo in forum Queries
    Replies: 0
    Last Post: 01-13-2009, 03:57 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums