[AccessD] Classes, Recordsets, and problems inbetween

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



More information about the AccessD mailing list