ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to locate the end of a recordset (https://www.excelbanter.com/excel-programming/362929-how-locate-end-recordset.html)

CLamar

How to locate the end of a recordset
 
"CLamar" wrote:

How do you find the end of a recordset, so it can be used in a loop. I tried
the EOF command but it wont enter the loop when i use it. Here is an example
of the code. The second for loop with the * is the one giving me problems

Set Recordset = New ADODB.Recordset
With Recordset
Src = "SELECT * FROM Table1"
.Open Source:=Src, ActiveConnection:=Connection

For Col = 0 To Recordset.Fields.Count - 1
Sheets("DataTable").Range("A1").Offset(0, Col).Value =
Recordset.Fields(Col).Name
Next

Sheets("DataTable").Range("A1").Offset(1, 0).CopyFromRecordset
Recordset

** For Row = 2 To Recordset.EOF
Sheets("Sheet1").LstBatchnum.AddItem
Sheets("DataTable").Cells(Row, 1)
Next Row
End With

Thanks


ADG

How to locate the end of a recordset
 
Hi

You can use recordset..RecordCount to find the number of rows in the
recordset. But beware, in some versions of office this does not give the
right count until you have moved to the end of the recordset, so preceed it
with recordset.MoveLast

HTH
--
Tony Green


"CLamar" wrote:

"CLamar" wrote:

How do you find the end of a recordset, so it can be used in a loop. I tried
the EOF command but it wont enter the loop when i use it. Here is an example
of the code. The second for loop with the * is the one giving me problems

Set Recordset = New ADODB.Recordset
With Recordset
Src = "SELECT * FROM Table1"
.Open Source:=Src, ActiveConnection:=Connection

For Col = 0 To Recordset.Fields.Count - 1
Sheets("DataTable").Range("A1").Offset(0, Col).Value =
Recordset.Fields(Col).Name
Next

Sheets("DataTable").Range("A1").Offset(1, 0).CopyFromRecordset
Recordset

** For Row = 2 To Recordset.EOF
Sheets("Sheet1").LstBatchnum.AddItem
Sheets("DataTable").Cells(Row, 1)
Next Row
End With

Thanks


CLamar

How to locate the end of a recordset
 
Thanks that sounded like a great idea and it should have worked but it
doesnt. It doesnt give me an error when I use the RecordCount but it doesnt
enter the loop. When I use .MoveLast it gives me the error "Expected
Function or Variable". So can you tell me if i am doing something wrong or
give me another suggestion

Thanks CLamar


"ADG" wrote:

Hi

You can use recordset..RecordCount to find the number of rows in the
recordset. But beware, in some versions of office this does not give the
right count until you have moved to the end of the recordset, so preceed it
with recordset.MoveLast

HTH
--
Tony Green


"CLamar" wrote:

"CLamar" wrote:

How do you find the end of a recordset, so it can be used in a loop. I tried
the EOF command but it wont enter the loop when i use it. Here is an example
of the code. The second for loop with the * is the one giving me problems

Set Recordset = New ADODB.Recordset
With Recordset
Src = "SELECT * FROM Table1"
.Open Source:=Src, ActiveConnection:=Connection

For Col = 0 To Recordset.Fields.Count - 1
Sheets("DataTable").Range("A1").Offset(0, Col).Value =
Recordset.Fields(Col).Name
Next

Sheets("DataTable").Range("A1").Offset(1, 0).CopyFromRecordset
Recordset

** For Row = 2 To Recordset.EOF
Sheets("Sheet1").LstBatchnum.AddItem
Sheets("DataTable").Cells(Row, 1)
Next Row
End With

Thanks


GS

How to locate the end of a recordset
 
Hi CLamar,

I think since you're reading the spreadsheet instead of the recordset, you
should be referencing a count of the rows of records.<IMO Try changing the
loop start to:

For Row = 2 To Cells(Rows.Count, 1).End(xlUp).Row

HTH
Regards,
Garry


All times are GMT +1. The time now is 10:31 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com