Error 3061 Expected
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more about Stack Overflow the company Business Learn run time error 3061 expected 1 more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags
Error 3061 Too Few Parameters Expected 2
Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, run time error 3061 expected 3 helping each other. Join them; it only takes a minute: Sign up Error 3061 Too few parameters 2 expected up vote 1 down vote favorite I have been facing the error 3061 with error message "Too few Parameters: access vba error 3061 expected 1 Expected 2". I have done all of the following to resolve the issue but still couldn't it. I ran the query in SQL mode and it gives me result I checked all the field names I checked all the "&" s are placed. I find them correct. Here is my code: Private Sub cmbYear_Change() Dim db As Database Dim rs As DAO.Recordset Dim Query As String Query = " SELECT Yrs_Teaching, Highest_Edu, AD_Descr FROM ClassSurvey" &
Runtime Error 3061 Expected 2
_ " WHERE ClassSurvey.Program/School_ID = " & Me.cmbProgId.Value & _ " AND ClassSurvey.ClassID = " & Me.cmbClassId.Value & _ " AND ClassSurvey.Teacher_ID = " & Me.cmbTeacherID.Value & _ " AND ClassSurvey.SYear = " & Me.cmbYear.Value Set db = CurrentDb Set rs = db.OpenRecordset(Query) If rs.RecordCount > 0 Then Me.TB1 = rs!Yrs_Teaching Me.TB2 = rs!Highest_Edu Me.TB3 = rs!AD_Descr Else Me.TB1 = "N/A" End If Set rs = Nothing Set db = Nothing End Sub ms-access access-vba share|improve this question edited Aug 29 '13 at 17:07 HansUp 79.1k114371 asked Aug 29 '13 at 16:33 user1804254 293411 add a comment| 2 Answers 2 active oldest votes up vote 4 down vote It appears your table includes a field named Program/School_ID. Bracket that field name in the SELECT statement so the db engine can properly recognize it as one field name. That change might be all you need. But if you have another problem, give yourself an opportunity to examine the completed SELECT statement you're giving to the db engine. It might not be what you expect. Dim db As Database Dim rs As DAO.Recordset Dim strQuery As String strQuery = "SELECT cs.Yrs_Teaching, cs.Highest_Edu, cs.AD_Descr FROM ClassSurvey AS cs" & _ " WHERE cs.[Program/School_ID] = " & Me.cmbProgId.Value & _ " AND cs.ClassID = " & Me.cmbClassId.Value & _ " AND cs.Teacher_ID = " & Me.cmbTeacherID.Value & _ " AND cs.SYear
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more about Stack error 3061 in ms access Overflow the company Business Learn more about hiring developers or posting ads with us error 3061 alldata Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a
Access Error 3061 Openrecordset
community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up Why Run-time error '3061'. Too few parameters. Expected 1? Access 2010 up vote 1 down http://stackoverflow.com/questions/18516396/error-3061-too-few-parameters-2-expected vote favorite I have researched all the STACKOVERFLOW questions on this but cannot make it work. I have a simple table: And a form: I want to extract the fields from the table T:ActityRoster and the “Activity Date” from the form and “add” them to a table T:ActivityHistory. A STACKOVERFLOW expert helped me with some code, but it won’t even set the first recordset:rsIn Dim ActID As Integer, actDate As Date, http://stackoverflow.com/questions/29777371/why-run-time-error-3061-too-few-parameters-expected-1-access-2010 val1 As Long, val2 As Long, val3 As Boolean, val4 As Currency Dim db As Database, rsIn As Recordset, rsOut As Recordset Dim strSQL As String Set db = CurrentDb ActID = Me.cboActivityName.Column(0) strSQL = "SELECT * FROM T:ActivityRoster WHERE [ActivityID] = ActID" Debug.Print strSQL Set rsIn = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) rsIn.MoveLast Set rsOut = db.OpenRecordset("T:AttendanceHistory", dbOpenDynaset, dbEditAdd) rsOut.MoveLast actDate = Me.ActivityDate.Value ' retrive the date from the form With rsIn .MoveFirst Do val1 = !ActivityID val2 = !MemberID val3 = !Attended val4 = !AmtSpent With rsOut .AddNew !ActivityDate = actDate !ActivityID = val1 !MemberID = val2 !Attended = val3 !AmtSpent = val4 .Update End With .MoveNext Loop Until .EOF .Close End With rsOut.Close Set rsIn = Nothing Set rsOut = Nothing Set db = Nothing End Sub I have verified that all field names are correct and are consistent data types. When I put the query back into Access, it gives what is expected. ms-access access-vba ms-access-2010 share|improve this question edited Apr 21 '15 at 17:18 HansUp 79.1k114371 asked Apr 21 '15 at 15:58 Michael 4619 add a comment| 2 Answers 2 active oldest votes up vote 3 down vote accepted The SELECT statement includes the name of a VBA variable (ActID): strSQL = "SELECT * FROM T:ActivityRoster
Search Community Links Social Groups Pictures & Albums Members List Calendar Search Forums Show Threads Show Posts Tag Search Advanced Search Find All Thanked Posts Go to Page... http://www.access-programmers.co.uk/forums/showthread.php?t=45940 Page 1 of 2 1 2 > Thread Tools Rating: Display https://bytes.com/topic/access/answers/660221-dao-run-time-error-3061-too-few-parameters Modes 04-14-2003, 02:19 AM #1 Ally Newly Registered User Join Date: Sep 2001 Location: Colchester, Essex, England Posts: 617 Thanks: 0 Thanked 2 Times in 2 Posts Error 3061: Too Few Parameters. Expected 2 I have a form, which is opened from another form. When I try doing anything on error 3061 the second form, I get the error message: Run-time error 3061: Too few parameters. Expected 2 The code that is running is: Code: Private Sub ACPDailyDate_Exit(Cancel As Integer) Dim x, y, z As String Dim r As Recordset, db As Database Dim DocName As String Dim LinkCriteria As String DocName = "frmACPData" Dim intNewRecord As Integer intNewRecord = IsNull(Me.ACPDailyID) Set db = CurrentDb() Set r = db.OpenRecordset("qryPtACPDaily") error 3061 expected 'If intNewRecord Then Do Until r.EOF If r.Fields("acpdailydate") = Me.ACPDailyDate.Value Then msgbox r.Fields("PtFirstName") & " " & r.Fields ("PtLastName") & " already has ACP data for this date " & _ Chr(13) & r.Fields("acpdailydate"), vbOKOnly + vbExclamation, "Warning" DoCmd.Close Exit Sub ElseIf r.NoMatch Then End If r.MoveNext Loop 'Else Exit Sub 'End If Me.Refresh Exit Sub End Sub The line highlighted is: Set r = db.OpenRecordset("qryPtACPDaily") In the query there are 2 parameters: [Forms]![frmACPData]![EpisodeID] [Forms]![frmACPData]![UnitNo] The query runs fine on its own (when the forms open). Does anyone know whats wrong please? __________________ If you want to go to Heaven, you have to go via King's Cross! Not sure what to do with your old photos, or would like a special gift! To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. - UK Last edited by Ally; 04-14-2003 at 02:22 AM. Ally View Public Profile Find More Posts by Ally 04-14-2003, 02:33 AM #2 Mile-O Back once again... Join Date: Dec 2002 Location: Glasgow, UK Posts: 11,312 Thanks: 4 Thanked 112 Times in 107 Posts It would look
Ask a Question Need help? Post your question and get tips & solutions from a community of 418,509 IT Pros & Developers. It's quick & easy. in DAO: Run time error 3061 Too few parameters.... P: n/a Richard Hollenbeck I wonder what I'm missing? I really feel like a retard because I've been screwing with some code for a very long time. I just must be missing something very simple. In the following example, I've stripped away everything that doesn't cause the error to make my question a little simpler. Here's the problem in its simplest form inside a report: Dim db As DAO.Database Dim rs As DAO.RecordSet Set db = CurrentDb Set rs = db.OpenRecordset("SELECT * FROM qryTableOfGrades") 'where qryTableOfGrades is a saved crosstab query. I get "Run time error 3061 Too few parameters. Expected 0." but if I just make that last line: Set rs = db.OpenRecordset("qryTableOfGrades") I get "Run time error 3061 Too few parameters. Expected 1." And if I do this: Set rs = db.OpenRecordset(qryTableOfGrades) ' without quotes I get "variable not defined." If I run the query by itself without the report it runs fine. Jun 10 '07 #1 Post Reply Share this Question 1 Reply P: n/a Allen Browne There is a name in qryTableOfGrades that Access cannot resolve to a field name, so it interprets it as a parameter. The parameter could be several things, e.g.: a) Something like this: [Forms].[Form1].[Text22] When you run the query, the Expression Service handles that reference. But the ES is not available in DAO code, so it is treated as an unsupplied parameter. b) A misspelled field name. c) A field name in the Filter or Order By properties of the query, if the field no longer exists. You should be able to identify what the parameter is by closing all forms, running the query, and seeing what name it asks for. It is possible to supply the parameter programmatically, e.g.: Dim qdf As DAO.QueryDef Set qdf = dbEngine(0)(0).QueryDef("qryTableOfGrades") qdf.Parameters("[Forms].[Form1].[Text22]") = [Forms].[Form1].[Text22] Set rs = qdf.OpenRecordset(... -- Allen Browne - Microsoft MVP. Perth, Western Australia Tips for Access users - http://allenbrowne.com/tips.html Reply to group, rather than allenbrowne at mvps dot org. "Richard Hollenbeck"