Code Snippets
Database_AddResults
Public Sub Database_AddResults( _
ByVal sTableName As String, _
ParamArray vColumnsValues() As Variant)
Dim icolumnnumber As Integer
Dim scolumnname As String
Dim scolumnnameconcat As String
Dim scolumnvalue As String
Dim scolumnvalueconcat As String
Dim ssqltemp As String
On Error GoTo ErrorHandler
' If vColumnsValues = Nothing Then Exit Sub
For icolumnnumber = 1 To (UBound(vColumnsValues) + 1) / 2
scolumnname = vColumnsValues(2 * (icolumnnumber - 1))
scolumnvalue = vColumnsValues(2 * (icolumnnumber - 1) + 1)
scolumnnameconcat = scolumnnameconcat & scolumnname & ","
scolumnvalueconcat = scolumnvalueconcat & """" & scolumnvalue & """" & ","
Next icolumnnumber
ssqltemp = "INSERT INTO " & sTableName & _
" (" & Left$(scolumnnameconcat, Len(scolumnnameconcat) - 1) & ") " & _
"VALUES (" & Left$(scolumnvalueconcat, Len(scolumnvalueconcat) - 1) & ")"
gsSQLQuery = ssqltemp
Call Database_SQLRunCode(False, False)
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Str_CharsReplace", msMODULENAME, 1, _
"INSERT the array of data into the database ??")
End Sub
Database_ContainsData
Public Function Database_ContainsData( _
ByRef dbADORecordset As ADODB.Recordset) _
As Boolean
On Error GoTo ErrorHandler
dbADORecordset.MoveFirst
Database_ContainsData = True
Exit Function
ErrorHandler:
Database_ContainsData = False
End Function
Database_NoOfRows
Public Function Database_NoOfRows( _
ByRef dbADORecordset As ADODB.Recordset) _
As Long
Dim lcount As Long
On Error GoTo ErrorHandler
If Database_ContainsData(dbADORecordset) = False Then
Database_NoOFRows = -1
Exit Function
Else
Do Until dbADORecordset.EOF = True
dbADORecordset.MoveNext
lcount = lcount + 1
Loop
Database_NoOFRows = lcount
End If
Exit Function
ErrorHandler:
Call Error_Handle(Err.Number & " " & Err.Description, "Database_NoOfRows")
End Function
Database_ResultsToArrayMulti
Public Function Database_ResultsToArrayMulti( _
ByVal sArrayName As String, _
ByRef vArrayName As Variant, _
Optional ByVal bIncludeFields As Boolean = True, _
Optional ByVal iNoOfColumns As Integer = -1, _
Optional ByVal iPopulateCol As Integer = -1) _
As Boolean
Dim ltotalrecords As Long
Dim lrownumber As Long
Dim lrecordcounter As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
Set vArrayName = Nothing
Database_ResultsToArrayMulti = False
ltotalrecords = gobjADORecordSet.RecordCount
If (ltotalrecords > 0) Then
Database_ResultsToArrayMulti = True
If bIncludeFields = True Then
ltotalrecords = ltotalrecords + 1
End If
If iNoOfColumns = -1 Then
ReDim vArrayName(gobjADORecordSet.Fields.Count, ltotalrecords)
End If
If iNoOfColumns > 0 Then
ReDim vArrayName(iNoOfColumns - 1, ltotalrecords - 1)
End If
If gobjADORecordSet.State = ADODB.adStateOpen Then
If bIncludeFields = True Then
For ifieldnumber = 0 To gobjADORecordSet.Fields.Count - 1
vArrayName(ifieldnumber, 0) = _
gobjADORecordSet.Fields(ifieldnumber).Name
Next ifieldnumber
End If
For lrownumber = (ltotalrecords - gobjADORecordSet.RecordCount) To ltotalrecords - 1
For ifieldnumber = 0 To gobjADORecordSet.Fields.Count - 1
If iNoOfColumns > 0 Then
If IsNull(gobjADORecordSet.Fields(ifieldnumber).Value) = True Then
If iPopulateCol = -1 Then
vArrayName(ifieldnumber, lrownumber) = ""
End If
If iPopulateCol > 0 Then
vArrayName(iPopulateCol, lrownumber) = ""
End If
Else
If iPopulateCol = -1 Then
vArrayName(ifieldnumber, lrownumber) = _
CStr(gobjADORecordSet.Fields(ifieldnumber).Value)
End If
If iPopulateCol > 0 Then
vArrayName(iPopulateCol, lrownumber) = _
CStr(gobjADORecordSet.Fields(ifieldnumber).Value)
End If
End If
End If
Next ifieldnumber
gobjADORecordSet.MoveNext
Next lrownumber
End If
End If
Set gobjADORecordSet = Nothing
If gbDEBUG = False Then Exit Function
ErrorHandler:
Call Error_Handle("Database_ResultsToArray", msMODULENAME, 1, _
"transfer the results of the database recordset into the array " & _
"""" & sArrayName & """")
End Function
Database_ResultsToArraySingle
Public Sub Database_ResultsToArraySingle( _
ByVal sArrayName As String, _
ByVal vArrayName As Variant, _
Optional ByVal bIncludeField As Boolean = False)
Dim ltotalrecords As Long
Dim lrownumber As Long
Dim lrecordcounter As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
Set vArrayName = Nothing
ltotalrecords = gobjADORecordSet.RecordCount
If ltotalrecords > 0 Then
If bIncludeField = True Then ltotalrecords = ltotalrecords + 1
ReDim vArrayName(ltotalrecords - 1)
If gobjADORecordSet.State = ADODB.adStateOpen Then
If bIncludeField = True Then
vArrayName(0) = gobjADORecordSet.Fields(ifieldnumber).Name
End If
For lrownumber = (ltotalrecords - gobjADORecordSet.RecordCount) + 1 To ltotalrecords
If IsNull(gobjADORecordSet.Fields(0).Value) = True Then
vArrayName(lrownumber - 1) = ""
Else
vArrayName(lrownumber - 1) = _
CStr(gobjADORecordSet.Fields(0).Value)
End If
gobjADORecordSet.MoveNext
Next lrownumber
End If
End If
Set gobjADORecordSet = Nothing
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_ResultsToArraySingle", msMODULENAME, 1, _
"transfer the results of the database recordset into the array " & _
"""" & sArrayName & """")
End Sub
Database_ResultsToListComboBox
Transfers the results of the database recordset into an listbox or combobox.Public Sub Database_ResultsToListComboBox( _
ByVal ctlBoxName As Control)
Dim lrownumber As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
If (gobjADORecordSet.RecordCount > 0) Then
If (gobjADORecordSet.State = ADODB.adStateOpen) Then
For lrownumber = 1 To gobjADORecordSet.RecordCount
ctlBoxName.AddItem
For ifieldnumber = 1 To gobjADORecordSet.Fields.Count
If IsNull(gobjADORecordSet.Fields(ifieldnumber - 1).Value) = True Then
ctlBoxName.Column(ifieldnumber - 1, ctlBoxName.ListCount - 1) = ""
Else
ctlBoxName.Column(ifieldnumber - 1, ctlBoxName.ListCount - 1) = _
CStr(gobjADORecordSet.Fields(ifieldnumber - 1).Value)
End If
Next ifieldnumber
gobjADORecordSet.MoveNext
Next lrownumber
End If
End If
Set gobjADORecordSet = Nothing
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_ResultsToListComboBox", msMODULENAME, 1, _
"")
End Sub
Database_ResultsToStr
Transfers the results of the database recordset into a string concatenation.Public Sub Database_ResultsToStr()
On Error GoTo ErrorHandler
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_ResultsToStr", msMODULENAME, 1, _
"")
End Sub
Database_ResultsToTextFile
Transfers the results of the database recordset into a text file.Public Sub Database_ResultsToTextFile()
On Error GoTo ErrorHandler
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_ResultsToTextFile", msMODULENAME, 1, _
"")
End Sub
Database_SQLParameterDeclare
Declares a parameter for calling a database stored procedure.Public Sub Database_SQLParameterDeclare( _
ByVal iType As Integer, _
ByVal iDirection As Integer, _
Optional ByVal iSize As Integer = 0, _
Optional ByVal sValue As Variant = "??", _
Optional ByVal sParameterName As String = "ParamName")
On Error GoTo ErrorHandler
Set gobjADOParameter = New ADODB.Parameter
If sValue <> "??" Then
Set gobjADOParameter = gobjADOCommand.CreateParameter(sParameterName, _
iType, iDirection, iSize, sValue)
End If
If sValue = "??" Then
Set gobjADOParameter = gobjADOCommand.CreateParameter(sParameterName, _
iType, iDirection, iSize)
End If
gobjADOCommand.Parameters.Append dbADOParameter
Set gobjADOParameter = Nothing
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_SQLParameterDeclare", msMODULENAME, 1, _
"declare the following paramter for the stored procedure" & vbCrLf & _
"Type:= " & iType & " Direction:= " & iDirection & " Size:= " & iSize)
End Sub
Database_SQLProcFuncCall
Executes a database stored procedure. If the stored procedure returns a value then this is returned.Public Function Database_SQLProcFuncCall( _
ByVal sProcFuncName As String, _
Optional ByVal bReturnValue As Boolean = False, _
Optional ByVal bRowReturning As Boolean = False, _
Optional ByVal iReturnType As Integer, _
Optional ByVal iReturnSize As Integer, _
Optional ByVal sVar1Value As Variant = "", _
Optional ByVal iVar1Type As Integer = 1, _
Optional ByVal sVar2Value As Variant = "", _
Optional ByVal iVar2Type As Integer = 1, _
Optional ByVal sVar3Value As Variant = "", _
Optional ByVal iVar3Type As Integer = 1, _
Optional ByVal sVar4Value As Variant = "", _
Optional ByVal iVar4Type As Integer = 1, _
Optional ByVal sVar5Value As Variant = "", _
Optional ByVal iVar5Type As Integer = 1, _
Optional ByVal sVar6Value As Variant = "", _
Optional ByVal iVar6Type As Integer = 1) _
As Variant
On Error GoTo ErrorHandler
Set dbADOCommand = New ADODB.Command
Set dbADOCommand.ActiveConnection = dbADOConnect
dbADOCommand.Name = "CommandName"
dbADOCommand.CommandText = sProcFuncName
dbADOCommand.CommandType = adCmdStoredProc
If bReturnValue = True Then
dbADOCommand.Parameters.Append _
dbADOCommand.CreateParameter("ReturnName", _
iReturnType, _
adParamReturnValue, _
iReturnSize)
End If
If sVar1Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar1Type, adParamInput, sVar1Value, 10)
End If
If sVar2Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar2Type, adParamInput, sVar2Value, 10)
End If
If sVar3Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar3Type, adParamInput, sVar3Value, 10)
End If
If sVar4Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar4Type, adParamInput, sVar4Value, 10)
End If
If sVar5Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar5Type, adParamInput, sVar5Value, 10)
End If
If sVar6Value <> "" Then
Call DataBase_SQLParameterDeclare(iVar6Type, adParamInput, sVar6Value, 10)
End If
Set dbADORecordSet = New ADODB.Recordset
Set dbADORecordSet = dbADOCommand.Execute
'error here - the procedure or function may not be in the declaration of the PL SQL
If bReturnValue = True Then
DataBase_SQLProcFuncCall = dbADOCommand("ReturnName")
End If
Set dbADOCommand = Nothing
If gbDEBUG = False Then Exit Function
ErrorHandler:
Set dbADOCommand = Nothing
Call Error_Handle("Database_SQLProcFuncCall", msMODULENAME, 1, _
"execute the database stored procedure and obtain the recordset value")
End Function
Database_SQLProcFuncDeclare
Public Sub Database_SQLProcFuncDeclare( _
ByVal sProcFuncName As String, _
Optional ByVal bReturnValue As Boolean = False, _
Optional ByVal bRowReturning As Boolean = False, _
Optional ByVal iReturnType As Integer, _
Optional ByVal iReturnSize As Integer)
On Error GoTo AnError
Set gobjADOCommand = New ADODB.Command
Set gobjADOCommand.ActiveConnection = gobjADOConnect
gobjADOCommand.CommandText = sProcFuncName
gobjADOCommand.CommandType = adCmdStoredProc
If bReturnValue = True Then
gobjADOCommand.Parameters.Append _
gobjADOCommand.CreateParameter("ReturnName", iReturnType, _
adParamReturnValue, iReturnSize)
End If
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_SQLProcFuncDeclare", msMODULENAME, 1,
Err.Number & " " & Err.Description)
End Sub
Database_SQLProcFuncExecute
Public Sub Database_SQLProcFuncExecute( _
Optional ByVal bReturnValue As Boolean = False, _
Optional ByVal sOutParameter1 As String = "", _
Optional ByVal vReturnValue1 As Variant, _
Optional ByVal sOutParameter2 As String = "", _
Optional ByVal vReturnValue2 As Variant, _
Optional ByVal sOutParameter3 As String = "", _
Optional ByVal vReturnValue3 As Variant)
On Error GoTo ErrorHandler
Set gobjADORecordSet = New ADODB.Recordset
Set gobjADORecordSet = gobjADOCommand.Execute
'error here - the procedure of function may not be in the declaration of the PL SQL
If bReturnValue = True Then
If Len(sOutParameter1) > 0 Then
If Not IsNull(gobjADOCommand(sOutParameter1).Value) Then
vReturnValue1 = gobjADOCommand(sOutParameter1).Value
End If
End If
If Len(sOutParameter2) > 0 Then
If Not IsNull(gobjADOCommand(sOutParameter2).Value) Then
vReturnValue2 = gobjADOCommand(sOutParameter2).Value
End If
End If
If Len(sOutParameter3) > 0 Then
If Not IsNull(gobjADOCommand(sOutParameter3).Value) Then
vReturnValue3 = gobjADOCommand(sOutParameter3).Value
End If
End If
End If
Set gobjADOCommand = Nothing
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_SQLProcFuncExecute", msMODULENAME, 1,
Err.Number & " " & Err.Description)
End Sub
Database_SQLRecordOutputResults
Public Function DataBase_SQLRecordOutputResults( _
ByVal iColFirst As Integer, _
ByVal lRowFirst As Long, _
Optional ByVal bIncludeFields As Boolean = True) _
As Long
Dim lRowNumber As Long
Dim lRowLast As Long
Dim icolumnnumber As Integer
Dim lrecordcounter As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
lRowNumber = lRowFirst
If dbADORecordset.state = ADODB.adStateOpen Then
icolumnnumber = iColFirst
If bIncludeFields = True Then
For ifieldnumber = 1 To dbADORecordset.Fields.Count
ActiveSheet.Cells(lRowNumber, icolumnnumber).Value = _
CStr(dbADORecordset.Fields(ifieldnumber - 1).Name)
icolumnnumber = icolumnnumber + 1
Next ifieldnumber
lRowNumber = lRowNumber + 1
End If
While Not dbADORecordset.EOF
icolumnnumber = iColFirst
For ifieldnumber = 1 To dbADORecordset.Fields.Count
If IsNull(dbADORecordset.Fields(ifieldnumber - 1).Value) = False Then
'then it must be a date as a string format
If IsDate(dbADORecordset.Fields(ifieldnumber - 1).Value) = True Then
ActiveSheet.Cells(lRowNumber, icolumnnumber).Value = _
DateSerial(DatePart("yyyy", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)), _
DatePart("m", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)), _
DatePart("d", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)))
Else
If IsNumeric(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value)) = False Then
ActiveSheet.Cells(lRowNumber, icolumnnumber).NumberFormat = "@"
ActiveSheet.Cells(lRowNumber, icolumnnumber).Value = _
Trim(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value))
Else
ActiveSheet.Cells(lRowNumber, icolumnnumber).Value = _
Trim(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value))
End If
End If
End If
icolumnnumber = icolumnnumber + 1
Next ifieldnumber
dbADORecordset.MoveNext
lRowNumber = lRowNumber + 1
Wend
End If
'minus one to return the last row that contains data
lRowLast = lRowNumber - 1
'plus one at the end to get the actual number of rows from the difference
lRowFirst = (lRowLast - lRowFirst) + 1
Set dbADORecordset = Nothing
Exit Function
ErrorHandler:
Call Error_Handle(Err.Number & " - " & Err.Description, "DataBase_SQLRecordOutputResults")
End Function
Database_SQLReturnArray
Public Function DataBase_SQLReturnArray( _
ByVal iColFirst As Integer, _
ByVal lRowFirst As Long, _
Optional ByVal bIncludeFields As Boolean = True) _
As Variant
Dim vaTemporary As Variant
Dim lRowNumber As Long
Dim lRowLast As Long
Dim icolumnnumber As Integer
Dim lrecordcounter As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
lRowNumber = lRowFirst
If dbADORecordset.state = ADODB.adStateOpen Then
If lRowNumber Mod 100 = 0 Then
ReDim Preserve vaTemporary(dbADORecordset.Fields.Count, lRowNumber)
End If
icolumnnumber = iColFirst
If bIncludeFields = True Then
For ifieldnumber = 1 To dbADORecordset.Fields.Count
vaTemporary(lRowNumber, icolumnnumber) = _
CStr(dbADORecordset.Fields(ifieldnumber - 1).Name)
icolumnnumber = icolumnnumber + 1
Next ifieldnumber
lRowNumber = lRowNumber + 1
End If
While Not dbADORecordset.EOF
icolumnnumber = iColFirst
If lRowNumber Mod 100 = 0 Then
ReDim Preserve vaTemporary(dbADORecordset.Fields.Count, lRowNumber)
End If
For ifieldnumber = 1 To dbADORecordset.Fields.Count
If IsNull(dbADORecordset.Fields(ifieldnumber - 1).Value) = False Then
'then it must be a date as a string format
If IsDate(dbADORecordset.Fields(ifieldnumber - 1).Value) = True Then
vaTemporary(lRowNumber, icolumnnumber) = _
DateSerial(DatePart("yyyy", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)), _
DatePart("m", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)), _
DatePart("d", CDate(dbADORecordset.Fields(ifieldnumber - 1).Value)))
Else
If IsNumeric(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value)) = False Then
vaTemporary(lRowNumber, icolumnnumber) = _
Trim(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value))
Else
vaTemporary(lRowNumber, icolumnnumber) = _
Trim(CStr(dbADORecordset.Fields(ifieldnumber - 1).Value))
End If
End If
End If
icolumnnumber = icolumnnumber + 1
Next ifieldnumber
dbADORecordset.MoveNext
lRowNumber = lRowNumber + 1
Wend
End If
DataBase_SQLReturnArray = vaTemporary
Set dbADORecordset = Nothing
Exit Function
ErrorHandler:
Call Error_Handle(Err.Number & " - " & Err.Description, "DataBase_SQLRecordOutputResults")
End Function
Database_SQLRunCode
Executes a database SQL statement Sometimes a constraint is violated ??.Public Function Database_SQLRunCode( _
Optional ByVal bReturnRecordSet As Boolean = False, _
Optional ByVal bReturnValue As Boolean = False) _
As Variant
On Error GoTo ErrorHandler
Set gobjADOCommand = New ADODB.Command
gobjADOCommand.CommandText = gsSQLQuery
gobjADOCommand.CommandType = adCmdText
gobjADOCommand.ActiveConnection = gobjADOConnect
If (bReturnRecordSet = True Or bReturnValue = True) Then
Set gobjADORecordSet = New ADODB.Recordset
Set gobjADORecordSet = gobjADOCommand.Execute
If bReturnValue = True Then
If gobjADORecordSet.EOF = True Then
Database_SQLRunCode = "Empty"
Else
Database_SQLRunCode = gobjADORecordSet.Fields(0).Value
End If
gobjADORecordSet.Close
Else
If gobjADORecordSet.EOF = True Then Database_SQLRunCode = "Empty"
End If
End If
If (bReturnRecordSet = False And bReturnValue = False) Then
gobjADOCommand.Execute
End If
If gbDEBUG = False Then Exit Function
ErrorHandler:
Set gobjADOCommand = Nothing
Database_SQLRunCode = "Error"
Call Error_Handle("Database_SQLRunCode", msMODULENAME, 1, _
"execute the following SQL code and obtain the recordset" & _
vbCrLf & vbCrLf & gsSQLQuery & vbCrLf & vbCrLf & _
"""" & Err.Number & """ """ & Err.Description & """")
'only include the comment "obtain a recordset if the Boolean variable is passed in
End Function
Database_SQLToArray
Public Function DataBase_SQLToArray( _
ByVal objADORecordSet As ADODB.Recordset, _
Optional ByVal bIncludeFieldNames As Boolean = False, _
Optional ByVal lArrayColFirst As Long = 0, _
Optional ByVal lArrayRowFirst As Long = 0) _
As Variant
Dim vaTemporary As Variant
Dim larrayrowno As Long
Dim larraycolno As Long
Dim lrecordcounter As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
larrayrowno = 0
If objADORecordSet.state = ADODB.adStateOpen Then
If larrayrowno Mod 100 = 0 Then
ReDim vaTemporary(objADORecordSet.Fields.Count - 1, larrayrowno + 100)
End If
larraycolno = 0
If bIncludeFieldNames = True Then
For ifieldnumber = 1 To objADORecordSet.Fields.Count
vaTemporary(larraycolno, larrayrowno) = CStr(objADORecordSet.Fields(ifieldnumber - 1).Name)
larraycolno = larraycolno + 1
Next ifieldnumber
larrayrowno = larrayrowno + 1
End If
While Not objADORecordSet.EOF
larraycolno = 0
If larrayrowno Mod 100 = 0 Then
ReDim Preserve vaTemporary(objADORecordSet.Fields.Count - 1, larrayrowno + 100)
End If
For ifieldnumber = 1 To objADORecordSet.Fields.Count
If IsNull(objADORecordSet.Fields(ifieldnumber - 1).Value) = False Then
vaTemporary(larraycolno, larrayrowno) = Trim(CStr(objADORecordSet.Fields(ifieldnumber - 1).Value))
' 'then it must be a date as a string format
' If IsDate(objADORecordSet.Fields(ifieldnumber - 1).Value) = True Then
' vaTemporary(larrayrowno, larraycolno) = _
' DateSerial(DatePart("yyyy", CDate(objADORecordSet.Fields(ifieldnumber - 1).Value)), _
' DatePart("m", CDate(objADORecordSet.Fields(ifieldnumber - 1).Value)), _
' DatePart("d", CDate(objADORecordSet.Fields(ifieldnumber - 1).Value)))
'
' Else
' If IsNumeric(CStr(objADORecordSet.Fields(ifieldnumber - 1).Value)) = False Then
' vaTemporary(larrayrowno, larraycolno) = _
' Trim(CStr(objADORecordSet.Fields(ifieldnumber - 1).Value))
' Else
' vaTemporary(larrayrowno, larraycolno) = _
' Trim(CStr(objADORecordSet.Fields(ifieldnumber - 1).Value))
' End If
' End If
End If
larraycolno = larraycolno + 1
Next ifieldnumber
objADORecordSet.MoveNext
larrayrowno = larrayrowno + 1
Wend
End If
ReDim Preserve vaTemporary(objADORecordSet.Fields.Count - 1, larrayrowno - 1)
DataBase_SQLToArray = vaTemporary
Exit Function
ErrorHandler:
Call Error_Handle(Err.Number & " - " & Err.Description, "DataBase_SQLToArray")
End Function
Database_SQLToArrayAppend
Public Function DataBase_SQLToArrayAppend( _
ByVal vaOriginalArray As Variant, _
ByVal objADORecordSet As ADODB.Recordset, _
Optional ByVal bIncludeFieldNames As Boolean = False) _
As Variant
Dim lupperbound As Long
Dim larrayrowno As Long
Dim larraycolno As Long
Dim ifieldnumber As Integer
On Error GoTo ErrorHandler
If objADORecordSet.state <> ADODB.adStateOpen Or _
objADORecordSet.EOF = True Then
DataBase_SQLToArrayAppend = Empty
Exit Function
End If
If Array_ContainsData(vaOriginalArray) = True Then
lupperbound = UBound(vaOriginalArray, 2)
larrayrowno = lupperbound + 1
'add 100 blank rows to the original array
ReDim Preserve vaOriginalArray(objADORecordSet.Fields.Count - 1, larrayrowno + 100)
Else
lupperbound = 0
larrayrowno = 0
ReDim vaOriginalArray(objADORecordSet.Fields.Count - 1, larrayrowno + 100)
End If
larraycolno = 0
If bIncludeFieldNames = True Then
For ifieldnumber = 1 To objADORecordSet.Fields.Count
vaOriginalArray(larraycolno, larrayrowno) = CStr(objADORecordSet.Fields(ifieldnumber - 1).Name)
larraycolno = larraycolno + 1
Next ifieldnumber
larrayrowno = larrayrowno + 1
End If
While Not objADORecordSet.EOF
larraycolno = 0
If larrayrowno > 0 And larrayrowno Mod 100 = 0 Then
ReDim Preserve vaOriginalArray(objADORecordSet.Fields.Count - 1, lupperbound + larrayrowno + 100)
End If
For ifieldnumber = 1 To objADORecordSet.Fields.Count
If IsNull(objADORecordSet.Fields(ifieldnumber - 1).Value) = False Then
vaOriginalArray(larraycolno, larrayrowno) = Trim(CStr(objADORecordSet.Fields(ifieldnumber - 1).Value))
End If
larraycolno = larraycolno + 1
Next ifieldnumber
objADORecordSet.MoveNext
larrayrowno = larrayrowno + 1
Wend
ReDim Preserve vaOriginalArray(objADORecordSet.Fields.Count - 1, larrayrowno - 1)
DataBase_SQLToArrayAppend = vaOriginalArray
Exit Function
ErrorHandler:
Call Error_Handle(Err.Number & " - " & Err.Description, "DataBase_SQLToArrayAppend")
End Function
Database_TablesToListCombo
Public Sub Database_TablesToListCombo( _
ByVal ctlBoxName As Control)
Dim ltotalrecords As Long
Dim lrownumber As Long
On Error GoTo ErrorHandler
Set gobjADORecordSet = gobjADOConnect.OpenSchema(adSchemaTables)
ltotalrecords = gobjADORecordSet.RecordCount
If (ltotalrecords > 0) Then
If gobjADORecordSet.State = ADODB.adStateOpen Then
For lrownumber = (ltotalrecords - gobjADORecordSet.RecordCount + 1) To ltotalrecords
If gobjADORecordSet("TABLE_TYPE") = "TABLE" Then
ctlBoxName.AddItem gobjADORecordSet("TABLE_NAME").Value
End If
gobjADORecordSet.MoveNext
Next lrownumber
End If
End If
Set gobjADORecordSet = Nothing
If gbDEBUG = False Then Exit Sub
ErrorHandler:
Call Error_Handle("Database_TablesToListCombo", msMODULENAME, 1, _
"")
End Sub
Message_DataSourceMergePromptUserToQuestion
Public Function Message_DataSourceMergePromptUserToQuestion() _
As Boolean
Dim breturn As Boolean
Dim objreturn As VBA.VbMsgBoxResult
If gbEND = True Then
Exit Function
End If
objreturn = MsgBox( _
"This document has not yet been merged with its data source." & _
vbCrLf & _
vbCrLf & _
"Would you like to merge the document now ?", _
VBA.VbMsgBoxStyle.vbYesNo + VBA.VbMsgBoxStyle.vbQuestion, _
gsFORM_TITLE)
If objreturn = VBA.VbMsgBoxResult.vbYes Then breturn = True
If objreturn = VBA.VbMsgBoxResult.vbNo Then breturn = False
DataSourceMergePromptUserToQuestion = breturn
End Function
© 2026 Better Solutions Limited. All Rights Reserved. © 2026 Better Solutions Limited Top