|
||||
Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.Klikk her for å gå til den oppdaterte informasjonen. 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 SubBytt 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
|
||||
|