Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Courtesy of Robin Hammond, I have the following code:
Option Explicit Sub OpenRSFromText() Dim oConn As ADODB.Connection Dim rsInput As ADODB.Recordset Dim strPath As String strPath = "F:\DATA\XCELData\MACROS\PTFUNDS\" Set oConn = New ADODB.Connection Set rsInput = New ADODB.Recordset oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strPath & ";" & _ "Extended Properties=""text;HDR=NO;FMT=FixedLength""" rsInput.Open "SELECT * FROM PtFunds.txt", _ oConn, adOpenStatic, adLockOptimistic, adCmdText rsInput.Filter = "ID = '6403'" ActiveSheet.Cells(1, 1).CopyFromRecordset rsInput MsgBox rsInput.RecordCount & " records found with ID 6403" End Sub I have the following sample records in PtFunds.txt 6403A 6400B 6403C I have the following Schema.ini in the same folder as the test file. [PtFunds.txt] Format=FixedLength Col1=ID Text Width 4 Col2=AcctName Text Width 1 When I run the code, it returns only the last record. The first is not included. Any ideas why? -- Ken Hudson |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() The problem may be related to ADO still interpreting the first record as a header. First guess capitalization of the argument: : try HDR=No (doubtfull scenario :( ... If you have JETSQL40.CHM help file on your computer (installed with Access in Office11\1033 subfolder) check out following: Windows Registry Settings for External Data Sources .. Initializing the Text and HTML Data Source Driver. There's also a section on customizing the Schema.Ini I think you'll need following line: [PtFunds.txt] Format=FixedLength ColNameHeader=False -- keepITcool | www.XLsupport.com | keepITcool chello nl | amsterdam Ken Hudson wrote : Courtesy of Robin Hammond, I have the following code: Option Explicit Sub OpenRSFromText() Dim oConn As ADODB.Connection Dim rsInput As ADODB.Recordset Dim strPath As String strPath = "F:\DATA\XCELData\MACROS\PTFUNDS\" Set oConn = New ADODB.Connection Set rsInput = New ADODB.Recordset oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strPath & ";" & _ "Extended Properties=""text;HDR=NO;FMT=FixedLength""" rsInput.Open "SELECT * FROM PtFunds.txt", _ oConn, adOpenStatic, adLockOptimistic, adCmdText rsInput.Filter = "ID = '6403'" ActiveSheet.Cells(1, 1).CopyFromRecordset rsInput MsgBox rsInput.RecordCount & " records found with ID 6403" End Sub I have the following sample records in PtFunds.txt 6403A 6400B 6403C I have the following Schema.ini in the same folder as the test file. [PtFunds.txt] Format=FixedLength Col1=ID Text Width 4 Col2=AcctName Text Width 1 When I run the code, it returns only the last record. The first is not included. Any ideas why? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The ColNameHeader=False solved the problem.
Thanks a lot. -- Ken Hudson "keepITcool" wrote: The problem may be related to ADO still interpreting the first record as a header. First guess capitalization of the argument: : try HDR=No (doubtfull scenario :( ... If you have JETSQL40.CHM help file on your computer (installed with Access in Office11\1033 subfolder) check out following: Windows Registry Settings for External Data Sources .. Initializing the Text and HTML Data Source Driver. There's also a section on customizing the Schema.Ini I think you'll need following line: [PtFunds.txt] Format=FixedLength ColNameHeader=False -- keepITcool | www.XLsupport.com | keepITcool chello nl | amsterdam Ken Hudson wrote : Courtesy of Robin Hammond, I have the following code: Option Explicit Sub OpenRSFromText() Dim oConn As ADODB.Connection Dim rsInput As ADODB.Recordset Dim strPath As String strPath = "F:\DATA\XCELData\MACROS\PTFUNDS\" Set oConn = New ADODB.Connection Set rsInput = New ADODB.Recordset oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strPath & ";" & _ "Extended Properties=""text;HDR=NO;FMT=FixedLength""" rsInput.Open "SELECT * FROM PtFunds.txt", _ oConn, adOpenStatic, adLockOptimistic, adCmdText rsInput.Filter = "ID = '6403'" ActiveSheet.Cells(1, 1).CopyFromRecordset rsInput MsgBox rsInput.RecordCount & " records found with ID 6403" End Sub I have the following sample records in PtFunds.txt 6403A 6400B 6403C I have the following Schema.ini in the same folder as the test file. [PtFunds.txt] Format=FixedLength Col1=ID Text Width 4 Col2=AcctName Text Width 1 When I run the code, it returns only the last record. The first is not included. Any ideas why? |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() good. be aware that you problem analysis was wrong: it is not: Returns only Last Record. it is: Does not return First record. <vbg be sure to keep a reference to that help file handy. (I've got it in my Quicklinks). It contains a lot of useful info/reference stuff re SQL and ADO settings else: www.DEVGURU.COM has a good ADO reference guide online. -- keepITcool | www.XLsupport.com | keepITcool chello nl | amsterdam Ken Hudson wrote : The ColNameHeader=False solved the problem. Thanks a lot. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Index with mulitple value returns and muliple column returns | Excel Worksheet Functions | |||
Open new record with selected fields from previous record | Excel Discussion (Misc queries) | |||
Finding last record in month for each of several types of record. | Excel Programming | |||
Record Macro - Record custom user actions | Excel Programming | |||
Need help autopopulating next new record with previous record data | Excel Programming |