Click to See Complete Forum and Search --> : Recordset in VB


kjoter
October 19th, 2001, 04:09 AM
Good Morning!

Do somebody know how to get data out of a recordset and into variables? As you can see in the code below, I do a loop on the recordset, and make a print. My problem is that I want to get the each value/field in the recordset into variables first, so I can print it in the order i want afterwords. Now do i get everything into sData variable, and then i am not able to change the order of fields when i do a print...

Do you have a suggestion? Thankful for all answers!


Dim rsAddresses As ADODB.Recordset
Dim rsNames As ADODB.Recordset
Dim paf As PafSearchR
Dim fld As ADODB.Field
Dim sData As String



Set paf = CreateObject ("nbPAFSearchR.PafSearchR")

Set rsAddresses = paf.DoPafSearch(FullPostCode, BuildingNo, "", "", "", "", "", 80, True, 100, True)



Open PrintFile For Append As #1 ' Open outputfile for append.

Set rsNames = paf.GetNames
rsAddresses.RecordCount & ")")
sData = ""
For Each fld In rsAddresses.Fields
sData = sData & fld.Name & ", "
Next
Do Until rsAddresses.EOF
sData = ""
For Each fld In rsAddresses.Fields
sData = sData & fld.Value & ", "
Next
' Call Trace(sData)
rsAddresses.MoveNext
Print #1, sData; 'prints address
Loop

tdeltax
October 19th, 2001, 05:13 AM
hi
u can use a multidimension text array to get all the data from the recordset.
now that u have the text array u can access the data in the order u want by specifying the indexes of the text array.

i hope this solves ur problem

tdeltax
October 19th, 2001, 05:13 AM
hi
u can use a multidimension text array to get all the data from the recordset.
now that u have the text array u can access the data in the order u want by specifying the indexes of the text array.

i hope this solves ur problem

Iouri
October 19th, 2001, 07:11 AM
Save data from rs to 2d array

Function RecordsetToVarArray(oRst As ADODB.Recordset) As Variant()

Dim avarStuff() As Variant ' Hold the returned records
Dim fldThis As ADODB.Field ' Iterator for the Fields collection
Dim iIndex As Integer ' Loop index

' Resize the array to hold the column names
ReDim avarStuff(1 To oRst.Fields.Count, 0 To 0) As Variant

' Extract all the column names from the Fields collection
iIndex = 1
For Each fldThis In oRst.Fields
avarStuff(iIndex, 0) = fldThis.Name
iIndex = iIndex + 1
Next fldThis

' Move to the first record in the recordset
oRst.MoveFirst

' Loop through the records, and build the 2-D array
Do While Not oRst.EOF
ReDim Preserve avarStuff(LBound(avarStuff, 1) To UBound(avarStuff, 1), _
LBound(avarStuff, 2) To (UBound(avarStuff, 2) + 1)) As Variant

For iIndex = LBound(avarStuff, 1) To UBound(avarStuff, 1)
avarStuff(iIndex, UBound(avarStuff, 2)) = _
oRst.Fields(avarStuff(iIndex, 0)).Value
Next iIndex

oRst.MoveNext
Loop

' Return the array
RecordsetToVarArray = avarStuff()
End Function

Iouri Boutchkine
iouri@hotsheet.com