Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
My Excel application contains the following code to enter data from an ADO
recordset, rsStats, onto an Excel spreadsheet: rsStats.Filter = "[DIST_CODE]='" & strTerr & "'" RecCount = rsStats.RecordCount ..Cells(n, startCol).CopyFromRecordset rsStats This code is contained within a loop that assigns different values to strTerr and n. The result is that it returns the various filtered recordsets at different locations on the spreadsheet. This works fine in VBA, but now I have to transfer this functionality into a vbscript that uses Office Automation to instantiate the Excel application, open the Excel file and insert the data. When the code is run from vbscript, rsStats.RecordCount returns the correct number of records for each filtering of the recordset, but CopyFromRecordset always prints the complete, unfiltered recordset. Is there some way I can get CopyFromRecordset to recognize the filter when working through Office Automation? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I can't think of any reason why this wouldn't work the same in vbscript as
it does in VBA, as long as you didn't miss something in the translation. Have you defined all ADO/XL intrinsic constants or replaced them with their values ? Tim "Sheldon Penner" wrote in message ... My Excel application contains the following code to enter data from an ADO recordset, rsStats, onto an Excel spreadsheet: rsStats.Filter = "[DIST_CODE]='" & strTerr & "'" RecCount = rsStats.RecordCount .Cells(n, startCol).CopyFromRecordset rsStats This code is contained within a loop that assigns different values to strTerr and n. The result is that it returns the various filtered recordsets at different locations on the spreadsheet. This works fine in VBA, but now I have to transfer this functionality into a vbscript that uses Office Automation to instantiate the Excel application, open the Excel file and insert the data. When the code is run from vbscript, rsStats.RecordCount returns the correct number of records for each filtering of the recordset, but CopyFromRecordset always prints the complete, unfiltered recordset. Is there some way I can get CopyFromRecordset to recognize the filter when working through Office Automation? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I did replace all constants with their values.
The issue has become academic in this instance. I was unaware of the existence of the Subtotal method, so my code had been copying filtered portions of the recordset, then adding a subtotals row beneath it, then copying the next filtered portion, and so on. As soon as I learned of the Subtotal method, I rewrote my code to simply copy the entire sorted recordset onto the spreadsheet, then apply the method to add subtotals and a grand total row. Simple! Which leaves the question of CopyFromRecordset and filtered recordsets unanswered. It does appear to me that Excel deals differently with it from internal vba modules than from external vbscript. "Tim Williams" wrote: I can't think of any reason why this wouldn't work the same in vbscript as it does in VBA, as long as you didn't miss something in the translation. Have you defined all ADO/XL intrinsic constants or replaced them with their values ? Tim "Sheldon Penner" wrote in message ... My Excel application contains the following code to enter data from an ADO recordset, rsStats, onto an Excel spreadsheet: rsStats.Filter = "[DIST_CODE]='" & strTerr & "'" RecCount = rsStats.RecordCount .Cells(n, startCol).CopyFromRecordset rsStats This code is contained within a loop that assigns different values to strTerr and n. The result is that it returns the various filtered recordsets at different locations on the spreadsheet. This works fine in VBA, but now I have to transfer this functionality into a vbscript that uses Office Automation to instantiate the Excel application, open the Excel file and insert the data. When the code is run from vbscript, rsStats.RecordCount returns the correct number of records for each filtering of the recordset, but CopyFromRecordset always prints the complete, unfiltered recordset. Is there some way I can get CopyFromRecordset to recognize the filter when working through Office Automation? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
SQL CopyFromRecordset | Excel Programming | |||
CopyFromRecordset will fail if the recordset array data such as hierarchical recordsets ??? | Excel Programming | |||
CopyFromRecordset does nothing | Excel Programming | |||
Type recordset/recordset? | Excel Programming | |||
Copyfromrecordset Bug ? | Excel Programming |