Results 1 to 5 of 5
  1. #1
    asc is offline Novice
    Windows 10 Access 2016
    Join Date
    Dec 2019
    Posts
    2

    Run-time eror '3061' - read query in VBA

    Hi.



    I am trying to read values from a query called 'finn_NS' and write it into a form called 'finn_namn'.
    When I launch the following code, this error pops up.

    "Run.time error '3061'. Too few parameters. Expected 1." (Translated from norwegian.)
    This error is located in the row 'Set rs = qdf.OpenRecordset()'.


    Code:
    Option Compare Database
    
    Private Sub Kommando4_Click()
        Dim db As DAO.Database
        Dim qdf As DAO.QueryDef
        Dim rs As DAO.Recordset
        Dim qry As String
    
    
        qry = "finn_NS"
        DoCmd.OpenForm "finn_namn"
        
        Set db = CurrentDb
        Set qdf = db.QueryDefs(qry)
        Set rs = qdf.OpenRecordset()
        
        With rs
            [Forms]![finn_namn]![Namn] = !Name
        End With
        
        Set rs = Nothing
        Set db = Nothing
    End Sub


    Do I need to put some parameters inside the .OpenRecordset()?

    Anders

  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,518
    Does the query have a parameter? If so, it has to be resolved in the QueryDef object. Here's an example (qdfStatement is my QueryDef):

    qdfStatement![Forms!frmMainMenu!txtDate] = Forms![frmMainMenu]![txtDate]
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  3. #3
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Try something like this:
    Code:
    Option Compare Database
    
    
    Private Sub Kommando4_Click()
        Dim db As DAO.Database
        Dim qdf As DAO.QueryDef
        Dim rs As DAO.Recordset
        Dim qry As String
        Dim prm as Parameter
    
    
        qry = "finn_NS"
        DoCmd.OpenForm "finn_namn"
        
        Set db = CurrentDb
        Set qdf = db.QueryDefs(qry)
    
        'loop and eval you parameters
        For each prm in qdf.Parameters
             prm.Value=Eval(prm.Name)
        next prm
    
    
        Set rs = qdf.OpenRecordset()
        
        With rs
            [Forms]![finn_namn]![Namn] = !Name
        End With
        
        Set rs = Nothing
        Set db = Nothing
    End Sub
    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

  4. #4
    davegri's Avatar
    davegri is online now Excess Access
    Windows 10 Access 2016
    Join Date
    May 2012
    Location
    Denver
    Posts
    3,389
    if the query "qry" runs independently without asking for a parameter, why all this code?
    In form finn_namn just make the control source for control namn =DLookup("namn","qry").
    It isn't clear if criteria is required, but if so, it can be added.

  5. #5
    asc is offline Novice
    Windows 10 Access 2016
    Join Date
    Dec 2019
    Posts
    2
    Quote Originally Posted by Gicu View Post
    Try something like this:
    Code:
    Option Compare Database
    
    
    Private Sub Kommando4_Click()
        Dim db As DAO.Database
        Dim qdf As DAO.QueryDef
        Dim rs As DAO.Recordset
        Dim qry As String
        Dim prm as Parameter
    
    
        qry = "finn_NS"
        DoCmd.OpenForm "finn_namn"
        
        Set db = CurrentDb
        Set qdf = db.QueryDefs(qry)
    
        'loop and eval you parameters
        For each prm in qdf.Parameters
             prm.Value=Eval(prm.Name)
        next prm
    
    
        Set rs = qdf.OpenRecordset()
        
        With rs
            [Forms]![finn_namn]![Namn] = !Name
        End With
        
        Set rs = Nothing
        Set db = Nothing
    End Sub
    Cheers,

    Thank you. That code solved my problem.
    Anders

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

Similar Threads

  1. Run Time Error 3061
    By DMT Dave in forum Access
    Replies: 6
    Last Post: 10-22-2019, 08:45 AM
  2. Replies: 4
    Last Post: 07-23-2015, 09:08 AM
  3. Run-time error '3061'
    By TheLazyEngineer in forum Programming
    Replies: 1
    Last Post: 03-04-2015, 11:17 AM
  4. Run time error 3061
    By beaurou in forum Modules
    Replies: 18
    Last Post: 02-23-2015, 11:54 AM
  5. Run-time error 3061
    By boywonder in forum Programming
    Replies: 1
    Last Post: 07-20-2011, 06:14 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