Darryl Collins
darryl at whittleconsulting.com.au
Mon Apr 14 01:41:29 CDT 2014
Off the top of my head you can drop the "SET". Did you try using "Rowsource" for the combo instead? Me!cboSearch.Rowsource = "" Should work. Or try Me!cboSearch.Rowsource =vbnullstring Hope that helps Cheers Darryl. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David Emerson Sent: Monday, 14 April 2014 3:58 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Checking for Records in Recordsets It is a code idea from this set of articles: http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=24 7036278&gid=4843954&commentID=-1&trk=view_disc&fromEmail=&ut=0zZtrmMKOSoSc1 http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=24 7036474&gid=4843954&commentID=-1&trk=view_disc&fromEmail=&ut=3WCtwx3gCToSc1 http://www.linkedin.com/groups/Access-ADO-SQL-Server-perfect-4843954.S.24703 6822?view=&gid=4843954&type=member&item=247036822&commentID=-1&trk=view_disc http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=24 7037047&gid=4843954&commentID=-1&trk=view_disc&fromEmail=&ut=3A1HOttOqToSc1 Basically the stored procedure has a number of select statements used by the main form and any combo boxes on the form. When the form is opened then the form and combo box sources are set by moving through the stored procedure's recordsets. The error is not on the first recordset which is used for the form, but for one of the subsequent recordsets. Because a parameter is being passed into the stored procedure which is used to filter the combobox records, there are situations when no records are returned for that combobox. This is what is causing the problem. I have narrowed the problem further. The actual problem line is: Set Me!cboSearch.Recordset = "" I have also tried Set Me!cboSearch.Recordset = NULL So it was not that the recordset had no records but the resetting of the field's source that produces the error 424 (Object Required). How do I clear the recordset for the combo box so that it doesn't show the previous filtered list? Regards David Emerson Dalyn Software Ltd Wellington, New Zealand -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darryl Collins Sent: Monday, 14 April 2014 3:43 p.m. To: Access Developers discussion and problem solving Subject: Re: [AccessD] Checking for Records in Recordsets I had similar questions on the code logic / syntax, but I figured I was only seeing part of the deal and there might be good / other reasons for the choice of code. But it did seem a bit odd prima facie. Regards Darryl. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Benson Sent: Monday, 14 April 2014 1:14 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Checking for Records in Recordsets A question: why are you setting Me.recordset = rstTemp? Personally I don't see how rstTemp.EOF I'd giving an error when the Set statement just prior to that does not. I could see if the Set statement was failing how the assignment might not replace the prior existing definition of rstTemp, as happens when setting other objects equal to something undefined will do (I think). Anyway, no help here, sorry, just questions! On Apr 13, 2014 9:17 PM, "David Emerson" <newsgrps at dalyn.co.nz> wrote: > Listers, > > > > I have some code that gets recordsets and applies them to the sources > of a number of combobox controls. > > > > The code looks like this: > > > > Set rstTemp = basRunDataObject("dbo.spfrmFunderServiceCode " & > Nz(Me!cboFilter, 0), adCmdText) > > Set Me.Recordset = rstTemp > > > > Set rstTemp = rstTemp.NextRecordset > > > > If rstTemp.EOF <> True Then 'Record exists > > Set Me!cboSearch.Recordset = rstTemp > > Else > > Set Me!cboSearch.Recordset = Null > > End If > > > > The stored Procedure has a number of select statements to get a number > of record sets. > > > > When a recordset has no records then an error 424 (Object Required) > appears when the "If rstTemp.EOF <> True" line is processed. This > seems to be telling me that if a recordset has no records then it > doesn't even get returned as an empty recordset. However, when I have > multiple recordsets I can use the "Set rstTemp = > rstTemp.NextRecordset" line to move to the next expected recordset > and it is the correct one for the next control. > > > > How can I check if there are any records in a returned recordset and > clear the control source? > > > > Regards > > David Emerson > Dalyn Software Ltd > Wellington, New Zealand > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com