John Colby
jwcolby at ColbyConsulting.com
Wed Nov 16 13:10:02 CST 2005
Steve,
This is an example of one of my classes that just stores data values from a
record:
Private mdb As DAO.Database
Private mlngTOID As Long
Private mlngTTID As Long
Private mlngStep As Long
Private mstrQry As String 'The query name of any
Private mstrSQLCode As String 'The SQL or vb code if any
Private mstrDescription As String 'The description of the operation
Private mstrType As String 'Qry, VBA, SQL
Private mblnExecute As Boolean 'This is an execute query
Private mstrQryType As String 'SEL;DEL;UPD;APP
Private Sub Class_Terminate()
Set mdb = Nothing
Debug.Print "dclsTransformOperation.Class_Terminate: TOID=" & mlngTOID
End Sub
Function mInit(rst As DAO.Recordset)
On Error GoTo Err_mInit
With rst
mlngTOID = !TO_ID
mlngTTID = !TO_IDTT
mlngStep = !TO_Step
mstrQry = StrNull(!TO_Query)
mstrSQLCode = StrNull(!TO_SQLCode)
mstrDescription = StrNull(!TO_Description)
mstrType = StrNull(!TO_Type)
mblnExecute = !TO_Execute
mstrQryType = StrNull(!TO_QryType)
End With
Exit_mInit:
Exit Function
Err_mInit:
MsgBox Err.Description, , "Error in Function
dclsTransformOperation.mInit"
Resume Exit_mInit
Resume 0 '.FOR TROUBLESHOOTING
End Function
Function StrNull(varVal As Variant) As String
If IsNull(varVal) Then
StrNull = ""
Else
StrNull = varVal
End If
End Function
Property Get pTOID() As Long
pTOID = mlngTOID
End Property
Property Get pTTID() As Long
pTTID = mlngTTID
End Property
Property Get pStep() As Long
pStep = mlngStep
End Property
Property Get pQry() As String
pQry = mstrQry
End Property
Property Get pSQLCode() As String
pSQLCode = mstrSQLCode
End Property
Property Get pDescription() As String
pDescription = mstrDescription
End Property
Property Get pType() As String
pType = mstrType
End Property
Property Get pExecute() As Boolean
pExecute = mblnExecute
End Property
Property Get pQryType() As String
pQryType = mstrQryType
End Property
Notice that:
All dim statements are private
All dim statements have a type
All property get statements have a type
Variables and property statements do not follow my table naming standards.
But they can.
I use a p as the prefix for all properties so they group in the object
browser. Just my own standard.
There are no Property let but there needs to be an option to build them
Of course the wizard will not build the Init() functions or surrounding
code.
The alternative of passing in a recordset is to pass in variables directly.
I kind of like passing in a recordset because the class can do its own
testing for the null values. If you don't do that then the init function
has to have variants to prevent run time errors when the record contains
nulls.
Anyeay, just the basics is what I am looking for.
John W. Colby
www.ColbyConsulting.com
Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Conklin
Sent: Wednesday, November 16, 2005 1:37 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Building classes for tables
LOL - ok, now I get it, but I haven't done it; but I'll collaborate here if
interested ... After lunch today, I'm at this PC until 10:00 pm ET.
Steve
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Colby
Sent: Wednesday, November 16, 2005 1:22 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Building classes for tables
yes
John W. Colby
www.ColbyConsulting.com
Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Conklin
Sent: Wednesday, November 16, 2005 1:05 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Building classes for tables
John:
I'm unclear about this thread ,,, are you looking for something like
For each fld is rs.fields
stDeclares = "dim " & getTypePrefix & fld.name
stGet ="Property Get " & fld.name & vbcrlf & _
fld.name & "=" & getTypePrefix & fld.name & vbcrlf & _
"End Property"
Next 'fld
Write this all out to disk and then do a Modules.addfromfile ?
Steve