runtime error 3061 - too few parmeters, expected 1

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • JH001A
    New Member
    • Oct 2006
    • 16

    runtime error 3061 - too few parmeters, expected 1

    ACCESS 2003 VBA in the code below set.rs3, gets the error when I try using a parm for input to the where clause. If I use a number like the one comented out it works.

    Thanks for your help.

    Private Sub subBuildcredits ()
    Dim db As DAO.Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim rs3 As DAO.Recordset
    Dim rs4 As DAO.Recordset
    Dim intClock As Integer

    Dim Sql4 As String
    Sql4 = "DELETE tblPerfectAtten d4.* FROM tblPerfectAtten d4;" ' Clear credit data filedata file
    DoCmd.RunSQL Sql4 ' clear tblPerfectAtten d4 before

    Set db = CurrentDb
    Set rs1 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d1")
    Set rs2 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d2 where tblPerfectAtten d2!perfect = true")
    Set rs4 = db.OpenRecordse t("SELECT * from tblPerfectAtten d4")

    rs2.MoveFirst

    intClock = rs2!clock ' control for employee ID
    strEmpName = rs2!Name
    While Not rs2.EOF
    strClock = rs2!clock ' control for employee ID
    Set rs3 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d3 WHERE tblPerfectAtten d3.MstClock=int Clock")
    ' Set rs3 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d3 WHERE tblPerfectAtten d3.MstClock=63" )
    rs3.MoveFirst
    While Not rs3.EOF
    rs3.MoveNext
    Wend
    rs3.Close
    rs2.MoveNext
    Wend
    rs1.Close
    rs2.Close
    rs4.Close
    End Sub
  • JH001A
    New Member
    • Oct 2006
    • 16

    #2
    I got it, but thanks for looking.

    JH001A

    Comment

    • NeoPa
      Recognized Expert Moderator MVP
      • Oct 2006
      • 32633

      #3
      lol - Good for you.
      The answer was that you had your variable name in the SQL string instead of the value from the variable.
      It's always better if you find it yourself though :)

      Comment

      • monbois
        New Member
        • Apr 2007
        • 3

        #4
        Originally posted by JH001A
        I got it, but thanks for looking.

        JH001A

        Do you mind sharing your solution? I'm having the same problem but can't figure it out.

        Thanks.

        Comment

        • JH001A
          New Member
          • Oct 2006
          • 16

          #5
          Originally posted by monbois
          Do you mind sharing your solution? I'm having the same problem but can't figure it out.

          Sorry it took so long to reply. Hope this helps.....

          Thanks.
          Private Sub subBuildcredits ()
          Dim db As DAO.Database
          Dim rs1 As DAO.Recordset
          Dim rs2 As DAO.Recordset
          Dim rs3 As DAO.Recordset
          Dim rs4 As DAO.Recordset
          Dim intClock As Integer

          Dim Sql4 As String
          Sql4 = "DELETE tblPerfectAtten d4.* FROM tblPerfectAtten d4;" ' Clear credit data filedata file
          DoCmd.RunSQL Sql4 ' clear tblPerfectAtten d4 before

          Set db = CurrentDb
          Set rs1 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d1")
          Set rs2 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d2 where tblPerfectAtten d2!perfect = true")
          Set rs4 = db.OpenRecordse t("SELECT * from tblPerfectAtten d4")

          rs2.MoveFirst

          intClock = rs2!clock ' control for employee ID
          strEmpName = rs2!Name
          While Not rs2.EOF
          strClock = rs2!clock ' control for employee ID
          Set rs3 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d3 WHERE tblPerfectAtten d3.MstClock=" & intClock)
          ' Set rs3 = db.OpenRecordse t("SELECT * FROM tblPerfectAtten d3 WHERE tblPerfectAtten d3.MstClock=63" )
          rs3.MoveFirst
          While Not rs3.EOF
          rs3.MoveNext
          Wend
          rs3.Close
          rs2.MoveNext
          Wend
          rs1.Close
          rs2.Close
          rs4.Close
          End Sub

          Comment

          Working...