|
||||
|
Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld. Importer data fra en tekstfil (ADO)Prosedyren nedenfor kan benyttes til å hente et ADO recordset fra en tekstfil og fylle inn resultatet i et regneark. Sub GetTextFileData(strSQL As String, strFolder As String, rngTargetCell As Range)
' example: GetTextFileData "SELECT * FROM filename.txt", "C:\FolderName", Range("A3")
' example: GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _
"C:\FolderName", Range("A3")
Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer
If rngTargetCell Is Nothing Then Exit Sub
Set cn = New ADODB.Connection
On Error Resume Next
cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=" & strFolder & ";" & _
"Extensions=asc,csv,tab,txt;"
On Error GoTo 0
If cn.State <> adStateOpen Then Exit Sub
Set rs = New ADODB.Recordset
On Error Resume Next
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
On Error GoTo 0
If rs.State <> adStateOpen Then
cn.Close
Set cn = Nothing
Exit Sub
End If
' overskriftene
For f = 0 To rs.Fields.Count - 1
rngTargetCell.Offset(0, f).Formula = rs.Fields(f).Name
Next f
rngTargetCell.Offset(1, 0).CopyFromRecordset rs ' virker i Excel 2000 eller nyere
'RS2WS rs, rngTargetCell ' alternativ metode for Excel 97 eller eldre
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Prosedyren kan eventuelt benyttes slik: Sub TestGetTextFileData()
Application.ScreenUpdating = False
Workbooks.Add
GetTextFileData "SELECT * FROM filename.txt", "C:\FolderName", Range("A3")
' GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _
"C:\FolderName", Range("A3")
Columns("A:IV").AutoFit
ActiveWorkbook.Saved = True
End Sub
Bytt ut filename.txt med navnet på den tekstfilen som du skal hente data fra.Bytt ut C:\FolderName med navnet på den mappen som tekstfilen er lagret i. Den første raden med data i tekstfilen blir benyttet som kolonneoverskrifter/feltnavn. Den enkelte kolonne med data må være adskilt med det samme listeskilletegnet som er angitt i de regionale innstillingene i Kontrollpanelet. I Norge er dette vanligvis et semikolon (;), andre steder kan dette være et komma (,). Prosedyren RS2WS finner du ved å klikke på denne linken. Eksempelmakroene forutsetter at ditt VBA-prosjekt har en referanse til ADO
objektbiblioteket.
Dokumentet er sist oppdatert 2002-04-02 22:16:41 Utskriftsvennlig versjon
|
![]() |
|||
| ||||