Generating the Data Services Class

The functions to save and retrieve records can also be generated. Add a new .bas module called BuildServer. Add the following code to the module:

Public Function CreateServer(ByRef r_TableInfo() As String, _

ByRef r_Tables() As Tablelnformation) As String

Dim strCode As String Dim lngTableCounter As Long Dim strTempTableName As String Dim lngFieldCounter As Long Dim lngQueryKeyCounter As Long Dim strTableName As String strCode = strCode & "Enum TableName" & Chr(13) & Chr(10) For lngTableCounter = 1 To UBound(r_TableInfo)

strCode = strCode & " e_" & r_TableInfo(lngTableCounter) & _ "=" & lngTableCounter - 1 & Chr(13) & Chr(10)

Next strCode = strCode & "End Enum" & Chr(13) & Chr(10) For lngTableCounter = 1 To UBound(r_TableInfo) Dim strCleanFields() As String

CleanFields r_Tables(lngTableCounter).FieldInfo, strCleanFields Dim strFields As String strFields = ""

For lngFieldCounter = 1 To UBound(r_Tables(lngTableCounter).FieldInfo) If lngFieldCounter = 1 Then strFields = " [" & r_Tables(lngTableCounter)." & _ "FieldInfo(lngFieldCounter).FieldName & "]"

Else strFields = strFields & ",[" & r_Tables(lngTableCounter)." & _ "FieldInfo(lngFieldCounter).FieldName & "]" End If Next strCode = strCode & " Private Const m_cstr" & _

r_TableInfo(lngTableCounter) & "Query =" & Chr(34) & _ "Select " & strFields & Chr(34) & " & _" & Chr(13) & Chr(10) strCode = strCode & Chr(34) & " From " & _

r_Tables(lngTableCounter).TableName & Chr(34) & Chr(13) & Chr(10) strTableName = r_Tables(lngTableCounter).TableName strCode = strCode & " Private Const m_cstr" & _ r_TableInfo(lngTableCounter) & _

r_Tables(lngTableCounter).PrimaryKey & " As String = " _ & Chr(34) & r_Tables(lngTableCounter).PrimaryKey & _ Chr(34) & Chr(13) & Chr(10)

Next

strCode =

= strCode

&

" Private Const m cstrDatabasePath As

String = "

&

Chr(34)

&

"C:\Program Files\Microsoft Visual Studio" &

"\VB98\NWIND.MDB" & Chr(34) & Chr(13) & Chr(10)

strCode =

= strCode

&

" Private m_objADOConnection As ADODB.

Connection

"

& _

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Private m_strErrorDetails As String"

' & Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Private m strQueryString As String"

& Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Private m objContext As ObjectContext" & Chr(13)

& _

Chr(10)

strCode =

= strCode

&

" Implements ObjectControl" & Chr(13)

& Chr(10)

strCode =

= strCode

&

"Private Sub ObjectControl Activate()'

' & Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Set m objContext = GetObjectContext"

' & Chr(13)

&

Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Function ObjectControl CanBePooled()" &

" As Boolean" & Chr(13) & Chr(10)

strCode =

= strCode

&

" ObjectControl_CanBePooled = False" & Chr(13) &

Chr(10)

strCode =

= strCode

&

"End Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Sub ObjectControl Deactivate()" & Chr(13) &

Chr(10)

strCode =

= strCode

&

" Set m_objADOConnection = Nothing" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Set m_objContext = Nothing" & Chr(13) & Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Function CreateInstance(ProgID As String)" &

" As Object" & Chr(13) & Chr(10)

strCode =

= strCode

&

" On Error GoTo CreateInstanceError" & Chr(13) &

Chr(10)

strCode =

= strCode

&

" If Not m_objContext Is Nothing Then" & Chr(13)

& Chr(10)

strCode =

= strCode

&

" Set CreateInstance = m objContext." &

CreateInstance(ProgID)" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Else" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Select Case ProgID" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Case " & Chr(34) & "ADODB.Connection" & _

Chr(34)

&

Chr(13) & Chr(10)

strCode =

= strCode

&

" Set CreateInstance = New ADODB.Connection" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Case " & Chr(34) & "ADODB.Recordset" & Chr(34)

& _

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Set CreateInstance = New ADODB.Recordset" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" End Select" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Exit Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"CreateInstanceError:" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Err.Raise Err.Number, Err.Source & " & Chr(34)

& _

"Createlnstance" & Chr(34) & ", Err.Description" & Chr(13)

& Chr(10)

strCode =

= strCode

&

"End Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Public Sub SetComplete()" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If Not m_objContext Is Nothing Then" & Chr(13)

& _

Chr(10)

strCode =

= strCode

&

" m_objContext.SetComplete" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Public Sub SetAbort()" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If Not m_objContext Is Nothing Then" & Chr(13)

& _

Chr(10)

strCode =

= strCode

&

" m_objContext.SetAbort" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Sub SetADOConnection(ByVal v_strUserID"

& _

" As String, _" & Chr(13) & Chr(10)

strCode =

= strCode

&

" ByVal v strPassword As String)" & Chr(13) & Chr(10)

strCode =

= strCode

&

" On Error GoTo SetADOConnectionError" & Chr(13)

& Chr(10)

strCode =

= strCode

&

" Set m objADOConnection = CreateInstance(" &

Chr(34)

&

"ADODB.Connection" & Chr(34) & ")" & Chr(13) & Chr(10)

strCode =

= strCode

&

" With m objADOConnection" & Chr(13) & Chr(10)

strCode =

= strCode

&

" .CursorLocation = adUseClient" & Chr(13) & Chr(10)

strCode =

= strCode

&

" .ConnectionString = " & Chr(34) &

"Provider=

=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;" & _

Chr(34)

&

" & _ " & Chr(13) & Chr(10)

strCode =

= strCode

&

" " & Chr(34) & "Data Source=" & Chr(34) & " & "

& _

"m cstrDatabasePath" & Chr(13) & Chr(10)

strCode =

= strCode

&

" .Open" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End With" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Exit Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"SetADOConnectionError:" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Dim lngErrorCounter As Long" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Dim strErrors As String" & Chr(13) & Chr(10)

strCode =

= strCode

&

" strErrors = Err.Number & " & Chr(34) & ": " &

Chr(34)

&

" & Err.Description" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If m objADOConnection.Errors.Count > 0 Then" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" For lngErrorCounter = 0 To m objADOConnection." &

"Errors.

.Count - 1" & Chr(13) & Chr(10)

strCode =

= strCode

&

" strErrors = strErrors & _" & Chr(13) & Chr(10)

strCode =

= strCode

&

" m objADOConnection.Errors(lngErrorCounter)." &

"Number

&

_" & Chr(13) & Chr(10)

strCode =

= strCode

&

" " & Chr(34) & ": " & Chr(34) & " & " &

"m objADOConnection.Errors(lngErrorCounter).Description" &

" & vbCrLf

:" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Next lngErrorCounter" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Err.Raise 2000 + vbObjectError, " & Chr(34) & _

"SetADOConnection " & Chr(34) & " & Err.Source, strErrors" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Function GetADOConnection() " &

"As ADODB.

Connection" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If m objADOConnection Is Nothing Then" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" Err.Raise 2001, " & Chr(34) & _

"GetADOConnection" & Chr(34) & ", " & Chr(13) & Chr(10)

strCode =

= strCode

&

" " & Chr(34) & _

"Trying

to Get Connection prior to setting it" &

Chr(34)

&

Chr(13) & Chr(10)

strCode =

= strCode

&

" Else" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Set GetADOConnection = m objADOConnection" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

"End Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Private Sub CloseADOConnection()" & Chr(13) & Chr(10)

strCode =

= strCode

&

" With GetADOConnection" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If .State = adStateOpen Then" & Chr(13) & Chr(10)

strCode =

= strCode

&

" .Close" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End If" & Chr(13) & Chr(10)

strCode =

= strCode

&

" End With" & Chr(13) & Chr(10)

strCode =

= strCode

&

"End Sub" & Chr(13) & Chr(10)

strCode =

= strCode

&

"Public Function ValidUserIDPassword" &

"(ByVal

v_

strUserID As String, _" & Chr(13) & Chr(10)

strCode =

= strCode

&

" ByVal v strPassword As String," &

" Optional

. ByRef r_strErrorDetails As String _" & Chr(13) & Chr(10)

strCode =

= strCode

&

" = " & Chr(34) & "Empty" & Chr(34) & ") As Boolean" _

& Chr(13)

& Chr(10)

strCode =

= strCode Chr(10)

&

" On Error GoTo ValidUserIDPasswordError" & Chr(13) & _

strCode =

= strCode

&

" SetADOConnection v strUserID, v strPassword" &

Chr(13)

&

Chr(10)

strCode =

= strCode

&

" ValidUserIDPassword = True" & Chr(13) & Chr(10)

strCode =

= strCode

&

" SetComplete" & Chr(13) & Chr(10)

strCode =

= strCode

&

" Exit Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"ValidUserIDPasswordError:" & Chr(13) & Chr(10)

strCode =

= strCode

&

" If r_strErrorDetails <> " & Chr(34) & "Empty" & _

Chr(34)

&

"Then" & Chr(13) & Chr(10)

strCode =

= strCode

&

" r strErrorDetails = " &

Chr(34)

&

"Error Details:" & Chr(34) & " & " &

"Err.Description & vbCrLf & _" & Chr(13) & Chr(10)

strCode & " " Chr(34) & " & "Error Source strCode & " " Chr(34) strCode strCode strCode strCode strCode

& Chr(34) & "Error Number:" & _ " & "Err.Number & vbCrLf & " & Chr(34) & _

" & Chr(34) & " & _" & Chr(13) & Chr(10) & Chr(34) & "ValidUserIDPassword " & _ Err.Source" & Chr(13) & Chr(10) " End If" & Chr(13) & Chr(10) " SetAbort" & Chr(13) & Chr(10)

" ValidUserIDPassword = False" & Chr(13) & Chr(10) "End Function" & Chr(13) & Chr(10)

"Private Sub GetRecordSet(ByRef r_recRecordset As

& Chr(13) & Chr(10) & " ByVal v_strSource)" & Chr(13) & Chr(10) & " On Error GoTo GetRecordSetError" & Chr(13) & Chr(10) & " Set r_recRecordset = New ADODB.Recordset" & _ & Chr(10)

& " r_recRecordset.CursorLocation = adUseClient" & _ & Chr(10)

& " r_recRecordset.Open _" & Chr(13) & Chr(10) & " v_strSource , GetADOConnection, adOpenStatic, " & _ " adLockOptimistic" & Chr(13) & Chr(10) strCode & " Exit Sub" & Chr(13) & Chr(10)

& "GetRecordSetError:" & Chr(13) & Chr(10) & " Err.Raise Err.Number, " & Chr(34) & "ValidUserID" & _ & " & Err.Source, Err.Description" & Chr(13) & Chr(10) & "End Sub" & Chr(13) & Chr(10)

"ADODB.Recordset, strCode strCode strCode Chr(13) strCode Chr(13) strCode strCode strCode strCode Chr(34) strCode strCode =

strCode =

strCode = strCode = strCode = strCode = strCode =

strCode = strCode = strCode =

strCode =

strCode = strCode =

strCode = strCode = strCode =

strCode =

For lngTableCounter = 1 To UBound(r_TableInfo)

strCode = strCode & "Public Function Return" & _ r_TableInfo(lngTableCounter) & _

"RecordSet(ByVal v_strUserID As String, ByVal _" & _ Chr(13) & Chr(10)

strCode = strCode & " v_strPassword As String, Optional ByVal " & _

"v_strParameter As String) As _" & Chr(13) & Chr(10) strCode = strCode & " ADODB.Recordset" & Chr(13) & Chr(10) strCode = strCode & " Dim rec" & r_TableInfo(lngTableCounter) & _

" As ADODB.Recordset" & Chr(13) & Chr(10) strCode = strCode & " On Error GoTo Return" & _

r_TableInfo(lngTableCounter) & "RecordSetError" & _ Chr(13) & Chr(10) strCode = strCode & " SetADOConnection v_strUserID, v_strPassword"

Chr(13) & Chr(10) strCode = strCode & " GetRecordSet rec" & _

r_TableInfo(lngTableCounter) & ", m_cstr" & _ r_TableInfo(lngTableCounter) & "Query & v_strParameter" & Chr(13) & Chr(10) strCode = strCode & " Set Return" & r_TableInfo(lngTableCounter) & "RecordSet = rec" & r_TableInfo(lngTableCounter) & _ Chr(13) & Chr(10) strCode = strCode & " Set rec" & r_TableInfo(lngTableCounter) & _

".ActiveConnection = Nothing" & Chr(13) & Chr(10) strCode = strCode & " SetComplete" & Chr(13) & Chr(10) strCode = strCode & " CloseADOConnection" & Chr(13) & Chr(10) strCode = strCode & " Set rec" & r_TableInfo(lngTableCounter) & _

" = Nothing" & Chr(13) & Chr(10) strCode = strCode & " Exit Function" & Chr(13) & Chr(10) strCode = strCode & "Return" & r_TableInfo(lngTableCounter) & _

"RecordSetError:" & Chr(13) & Chr(10) strCode = strCode & " CloseADOConnection" & Chr(13) & Chr(10) strCode = strCode & " SetAbort" & Chr(13) & Chr(10) strCode = strCode & " Err.Raise Err.Number, " & Chr(34) & _

" Return" & r_TableInfo(lngTableCounter) & Chr(34) & " " " , Err.Source " & " & " & Chr(13) & Chr(10)

&

strCode = strCode =

= strCode & = strCode &

" m_strErrorDetails" & Chr(13) & Chr(10) " End Function" & Chr(13) & Chr(10)

strCode = strCode & "Private Function Update" & _ r_TableInfo(lngTableCounter) & _

"RS(ByVal v_recClientRecordSet As _" & Chr(13) & Chr(10) strCode = strCode & _

" ADODB.Recordset, Optional ByVal v_bolDelete " & _ " As Boolean = False) As ADODB.Recordset" & Chr(13) & Chr(10) strCode = strCode & " Dim rec" & r_TableInfo(lngTableCounter) & _

" As ADODB.Recordset" & Chr(13) & Chr(10) strCode = strCode & " Dim lngFieldCounter As Long" & Chr(13) & Chr(10) strCode = strCode & " Dim lngRowCounter As Long" & Chr(13) & Chr(10) strCode = strCode & " On Error GoTo Update" & _

r_TableInfo(lngTableCounter) & "RSError" & Chr(13) & Chr(10) strCode = strCode & " If v_recClientRecordSet.EditMode = adEditAdd " &

"Then" & Chr(13) & Chr(10) strCode = strCode & " Set rec" & r_TableInfo(lngTableCounter) & _

" = CreateInstance(" & Chr(34) & "ADODB.Recordset" & Chr(34) < ")" & Chr(13) & Chr(10) strCode = strCode & " With rec" & r_TableInfo(lngTableCounter) & _

"" & Chr(13) & Chr(10) strTableName = r_Tables(lngTableCounter).TableName strCode = strCode & " .Source = m_cstr" & _

"r_TableInfo(lngTableCounter) & "Query & " & Chr(34) & " Where " & Chr(34) & " & m_cstr" & _ r_TableInfo(lngTableCounter) & _

r_Tables(lngTableCounter).PrimaryKey & " & " & Chr(34) " = " & Chr(34) & " & " & Chr(13) & Chr(10)

strCode = strCode =

strCode = strCode = strCode = strCode = strCode = strCode =

strCode =

strCode =

strCode =

strCode = strCode = strCode = strCode = strCode = strCode =

strCode strCode strCode strCode strCode

strCode & " 0" & Chr(13) & Chr(10)

strCode & " .ActiveConnection = GetADOConnection" & Chr(13) & Chr(10)

strCode & " .LockType = adLockPessimistic" & Chr(13) & strCode & " .CursorLocation = adUseServer" & Chr(13) & strCode & " .CursorType = adOpenKeyset" & Chr(13) & Chr(10) strCode & " .Open" & Chr(13) & Chr(10) strCode & " .AddNew" & Chr(13) & Chr(10)

strCode & " For lngFieldCounter = 0 To v_recClientRecordSet." & "Fields.Count - 1" & Chr(13) & Chr(10)

strCode & " If Not " & "IsNull(v_recClientRecordSet.Fields" & _

"(lngFieldCounter).Value) Then" & Chr(13) & Chr(10)

strCode & ".Fields(v_recClientRecordSet.Fields" & _

"(lngFieldCounter).Name) _" & Chr(13) & Chr(10)

strCode & " = v_recClientRecordSet.Fields" & _

"(lngFieldCounter).Value" & Chr(13) & Chr(10)

strCode & " End If" & Chr(13) & Chr(10)

strCode & " Next" & Chr(13) & Chr(10)

strCode & " .Update" & Chr(13) & Chr(10)

strCode & " End With" & Chr(13) & Chr(10)

strCode & " Else" & Chr(13) & Chr(10)

strCode & " Set rec" & r_TableInfo(lngTableCounter) & _ " = v_recClientRecordSet" & Chr(13) & Chr(10)

strCode = strCode & " Set rec" & r_TableInfo(lngTableCounter) & ".ActiveConnection = GetADOConnection" & Chr(13) & Chr(10) strCode & " If v_bolDelete = True Then" & Chr(13) & Chr(10) strCode & " rec" & r_TableInfo(lngTableCounter) & _ ".Delete" & Chr(13) & Chr(10) strCode & " Else" & Chr(13) & Chr(10)

strCode & " On Error Resume Next" & Chr(13) & Chr(10) strCode & " rec" & r_TableInfo(lngTableCounter) & _

".Filter = adFilterPendingRecords" & Chr(13) & Chr(10) strCode = strCode & " rec" & r_TableInfo(lngTableCounter) & _

".UpdateBatch" & Chr(13) & Chr(10) strCode = strCode & " rec" & r_TableInfo(lngTableCounter) & _

".Filter = adFilterConflictingRecords" & Chr(13) & Chr(10) strCode = strCode & " If rec" & r_TableInfo(lngTableCounter) & _

".RecordCount > 0 Then" & Chr(13) & Chr(10) strCode =strCode & " Err.Raise 2002, " & Chr(34) & "Update" & _

r_TableInfo(lngTableCounter) & "RS" & Chr(34) & "," & Chr(34) & " & Conflicting Errors" & Chr(34) & Chr(13) & Chr(10) strCode = strCode & " End If" & Chr(13) & Chr(10) strCode = strCode & " rec" & r_TableInfo(lngTableCounter) & _

".Filter = adFilterNone" & Chr(13) & Chr(10) strCode = strCode & " End If" & Chr(13) & Chr(10) strCode = strCode & " End If" & Chr(13) & Chr(10)

strCode = strCode & " Set Update" & r_TableInfo(lngTableCounter) & _ "RS = rec" & r_TableInfo(lngTableCounter) & "" & _ Chr(13) & Chr(10) strCode = strCode & " Set rec" & r_TableInfo(lngTableCounter) & _

" = Nothing" & Chr(13) & Chr(10) strCode = strCode & " Exit Function" & Chr(13) & Chr(10) strCode = strCode & "Update" & r_TableInfo(lngTableCounter) & _

"RSError:" & Chr(13) & Chr(10) strCode = strCode & " Err.Raise Err.Description, " & Chr(34) & _

" & Error Update" & r_TableInfo(lngTableCounter) & "RS" & _ Chr(34) & " & Err.Source, _" & Chr(13) & Chr(10) strCode = strCode & " Err.Description" & Chr(13) & Chr(10) strCode = strCode & "End Function" & Chr(13) & Chr(10) Next strCode = strCode & "Public Function UpdateRecordset" & _

"(ByVal v_strUserID As String, _" & Chr(13) & Chr(10) strCode = strCode & " ByVal v_strPassword As String, _" & _ Chr(13) & Chr(10)

strCode = strCode & " ByVal v_recClientRecordSet As ADODB.Recordset, _" & _ Chr(13) & Chr(10)

strCode = strCode & " ByVal v_eName As TableName, Optional ByVal " & _ " v_strWhereClause As String, " & _

" Optional ByVal v_bolDelete As Boolean = False) " & _ "As ADODB.Recordset" & Chr(13) & Chr(10) strCode = strCode & "On Error GoTo UpdateRecordsetError" & Chr(13) & Chr(10) strCode = strCode & "SetADOConnection v_strUserID, v_strPassword" & _

Chr(13) & Chr(10) strCode = strCode & "Select Case v_eName" & Chr(13) & Chr(10) For lngTableCounter = 1 To UBound(r_TableInfo)

strCode = strCode & "Case e_" & r_TableInfo(lngTableCounter) & _

Chr(13) & Chr(10) strCode = strCode & "Set UpdateRecordset = Update" & _ r_TableInfo(lngTableCounter) & _

"RS(v_recClientRecordSet, v_bolDelete)" & Chr(13) & Chr(10)

Next

strCode =

= strCode

&

"End Select" & Chr(13)

& Chr(10)

strCode =

= strCode

&

"SetComplete" & Chr(13)

& Chr(10)

strCode =

= strCode

&

"CloseADOConnection" &

Chr(13) & Chr(10)

strCode =

= strCode

&

"Exit Function" & Chr(13) & Chr(10)

strCode =

= strCode

&

"UpdateRecordsetError:"

& Chr(13) & Chr(10)

strCode =

= strCode

&

"CloseADOConnection" &

Chr(13) & Chr(10)

strCode =

= strCode

&

"SetAbort" & Chr(13) &

Chr(10)

strCode =

= strCode

&

"Err.Raise Err.Number,

" & Chr(34) & _

"UpdateRecordset" & Chr(34) & " & Err.Source" & Chr(13) & Chr(10) strCode = strCode & "End Function" & Chr(13) & Chr(10) CreateServer = strCode End Function

0 0

Post a comment