Marcus Tewksbury
tewksbum at hotmail.com
Sun May 11 23:11:45 CDT 2003
In this case it seems to be something specifically with recordsets - with InvoiceDetail I am only passing in an integer - and I;ve tried New'ing the recordset in the initialize - I'll give a look into referencing, but I haven't had a problem with any other ADO issue until now! Ugh - this is frustrating! >From: "Haslett, Andrew" <andrew.haslett at ilc.gov.au> >Reply-To: accessd at databaseadvisors.com >To: "'accessd at databaseadvisors.com'" <accessd at databaseadvisors.com> >Subject: RE: [AccessD] Classes, Recordsets, and problems inbetween >Date: Mon, 12 May 2003 13:32:56 +0930 > >lol - we've only finally got overloading and inheritance into VB.Net! Very >doubtful we can do that in VBA. > >I was about to ask if you've tried passing byRef so that ones out the door. > >Another wild stab -> but I suppose this is still worth asking. Haven't >forgot the references to ADO?? > >Perhaps try declaring mrst with a NEW instance: > >Private mrst As *NEW* ADODB.Recordset > >...but why would it work for InvoiceDetail and not OrderDetail?? > >Cheers, >A > >-----Original Message----- >From: Marcus Tewksbury [mailto:tewksbum at hotmail.com] >Sent: Monday, 12 May 2003 1:28 PM >To: accessd at databaseadvisors.com >Subject: Re: [AccessD] Classes, Recordsets, and problems inbetween > > >Yeap > >mrst has been declared... > >Option Compare Database >Option Explicit > >Private mlngInvoiceDetailID As Long >Private mlngInvoiceID As Long >Private mlngOrderDetailID As Long >Private mlngProductID As Long >Private mintShipped As Integer >Private mintCanceled As Integer >Private mintBackOrdered As Integer >Private mcurExtendedPrice As Currency >Private mflgSubstituteFlag As Boolean >Private mdteDateAdded As Date >Private mdteLastUpdated As Date >Private mflgActiveFlag As Boolean > >Private mrst As ADODB.Recordset <- Here >Private mflgAddFlag As Boolean >Private mflgDirtyFlag As Boolean > >The problem seems to be directly related to passing a recordset into the >class - through a sub or function. I've tried making > >Public Function Load_byInvoiceDetail > >a sub and function - and have tried passing byVal and ByRef. For testing I >changed the paramter to (xrst as ADODB.recordset) and then passed in a >newly > >created, plain recordset and it still bombs. > >Of course, another question that stems from this - if you look at what my >code is trying to accomplish - can you overload the initialize method? >That > >would be helpful! > >Thanks a million, > >- Tewks > > > > > > >From: "Michael R Mattys" <michael.mattys at adelphia.net> > >Reply-To: accessd at databaseadvisors.com > >To: <accessd at databaseadvisors.com> > >Subject: Re: [AccessD] Classes, Recordsets, and problems inbetween > >Date: Sun, 11 May 2003 23:09:37 -0400 > > > >Marcus, > > > >Has mrst been set = to an ADO recordset > >in the Declarations section? > > > >Mike Mattys > > > >----- Original Message ----- > >From: "Marcus Tewksbury" <tewksbum at hotmail.com> > >To: <accessD at databaseadvisors.com> > >Sent: Sunday, May 11, 2003 10:48 PM > >Subject: [AccessD] Classes, Recordsets, and problems inbetween > > > > > > > Hi everyone, > > > > > > Ok - here is my issue - I thought I'd be really fancy and start > > > encapsulating my tables in data classes - using properites and all >that > >good > > > stuff. One issue that I am having is trying to pass in recordsets (or > >other > > > classes that also contain recordsets) into a class always gives me a > >Type > > > Mismatch or 438 error. > > > > > > The class files and code behind all reside in the same project. > > > > > > Any thoughts? I'm stumped! > > > > > > > > > Here are 2 snippets > > > > > > Dim oInvoiceDetail As New InvoiceDetail > > > oInvoiceDetail.Load_byInvoiceID (Me.InvoiceID) > > > > > > Dim oOrderDetail As New OrderDetail > > > oOrderDetail.Load_byInvoiceDetail (oInvoiceDetail) <-CRASHES HERE > > > > > > While Not oOrderDetail.EOF > > > oOrderDetail.FilledFlag = False > > > oOrderDetail.MoveNext > > > Wend > > > > > > and ... > > > > > > Public Function Load_byInvoiceDetail(ByVal xInvoiceDetail As > >InvoiceDetail) > > > > > > Dim sstrSQL As String > > > Dim sflgNotFirst As Boolean > > > > > > sstrSQL = "SELECT * FROM OrderDetail" > > > > > > While Not xInvoiceDetail.EOF > > > If Not sflgNotFirst Then > > > sstrSQL = sstrSQL + " WHERE OrderDetailID = " & > > > xInvoiceDetail!OrderDetailID & ")" > > > sflgNotFirst = True > > > Else > > > sstrSQL = sstrSQL + " OR (OrderDetailID = " & > > > xInvoiceDetail!OrderDetailID & ")" > > > End If > > > xInvoiceDetail.MoveNext > > > Wend > > > > > > With mrst > > > .CursorLocation = adUseClient > > > .CursorType = adOpenDynamic > > > .LockType = adLockBatchOptimistic > > > .Source = sstrSQL > > > .Open > > > End With > > > > > > Call Scatter > > > > > > End Function > > > > > > _________________________________________________________________ > > > MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. > > > http://join.msn.com/?page=features/virus > > > > > > _______________________________________________ > > > 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 > >_________________________________________________________________ >The new MSN 8: smart spam protection and 2 months FREE* >http://join.msn.com/?page=features/junkmail > >_______________________________________________ >AccessD mailing list >AccessD at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/accessd >Website: http://www.databaseadvisors.com > >IMPORTANT - PLEASE READ ******************** >This email and any files transmitted with it are confidential and may >contain information protected by law from disclosure. >If you have received this message in error, please notify the sender >immediately and delete this email from your system. >No warranty is given that this email or files, if attached to this >email, are free from computer viruses or other defects. They >are provided on the basis the user assumes all responsibility for >loss, damage or consequence resulting directly or indirectly from >their use, whether caused by the negligence of the sender or not. >_______________________________________________ >AccessD mailing list >AccessD at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/accessd >Website: http://www.databaseadvisors.com _________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus