ID Artikel: 230265 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0

ImportText.exe mengimpor teks ke dalam akses dengan ADO/RDO/DAO/Filesys/otomatisasi

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Perbesar semua | Perkecil semua

RINGKASAN

ImportText.exe sampel menunjukkan berbagai cara untuk Impor file teks ke dalam database Microsoft Access. Ada banyak cara untuk Impor data teks untuk database Access, dan biasanya pilihan terbaik adalah ditentukan oleh persyaratan tugas.

  • ADO
  • RDO
  • DAO
  • Filesys
  • Otomatisasi
Contoh aplikasi yang terpasang rincian di atas coding pilihan.

INFORMASI LEBIH LANJUT

The berkas berikut ini tersedia untuk di-download dari Microsoft Download Pusat:

TextImport.exe (http://download.microsoft.com/download/vb60pro/Sample/1/W9XNT4/EN-US/TextImport.exe)

Untuk informasi tambahan tentang bagaimana untuk men-download berkas Dukungan Microsoft, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Cara mendapatkan berkas Dukungan Microsoft dari Layanan Online
Microsoft telah memindai berkas ini dari virus. Microsoft digunakan paling lunak pendeteksi virus terbaru yang tersedia pada tanggal yang file telah diposting. Berkas tersebut disimpan pada server aman yang membantu mencegah segala perubahan tidak sah terhadap berkas.

Perkecil tabel iniPerbesar tabel ini
Nama fileUkuran
ImportText.vbp1.464
ImportText.vbw56
Sample.out3,346
Sample.txt3,346
Sample_Header.txt3,708
Schema.ini422
Schema_Header.ini420
TextImport.frm28,678
TextImport.frx84
TextImport.mdb108,544


Semua file harus berada di folder yang sama. Menjalankan contoh aplikasi ImportText.vbp dan memeriksa berbeda impor/ekspor pilihan. Sampel TextImport.mdb digunakan dan harus berada dalam aplikasi jalan. File teks contoh default adalah Sample.txt. File Sample_Header.txt termasuk dan berisi kolom header untuk file teks. Skema alternatif file, Schema_Header.ini, dapat digunakan untuk menunjukkan menggunakan ColNameHeader = benar pilihan dalam file skema sesuai dengan Sample_Header.txt file.

Data impor pilihan menunjukkan, DAO adalah mungkin paling efisien (paling sedikit lapisan) atau dengan memori terkecil tapak; terutama jika mengimpor akses database.

Merujuk kepada Daftar berikut untuk mempelajari perpustakaan dimuat untuk setiap akses data metode.
  • Contoh benda FileSys: Scripting Runtime + DAO Perpustakaan + Jet perpustakaan
  • Sampel RDO: RDO perpustakaan perpustakaan ODBC + ODBC Jet perpustakaan perpustakaan Jet + teks ISAM driver
  • ADO (default contoh): perpustakaan ADO (OLEDB + MSDASQL) + ODBC perpustakaan perpustakaan ODBC Jet + Jet perpustakaan + teks Islam TERPADU driver
  • Sampel otomatisasi: MSOffice Runtime perpustakaan. Untuk DAO sampel: DAO perpustakaan perpustakaan Jet + teks ISAM driver
Fungsi berikut adalah contoh objek DAO di TextImport.vbp aplikasi. Kode ini digunakan dalam aplikasi ketika Anda klik tombol radio DAO sebelum mengimpor. Anda dapat mengubah contoh DAO dengan menambahkan recordset dan loop untuk manipulasi data seperti dalam objek FileSys contoh.
Sub DAOOpenTextFileImport()
On Error GoTo ErrHandler

lblAction.Caption = "DAO Import..."

Dim daoDB As DAO.Database
Dim strSQL As String
   
If chkCreateTbl.Value = 1 Then
    DBEngine.IniPath = App.Path & "\Schema_Header.ini"
Else
    DBEngine.IniPath = App.Path & "\Schema.ini"
End If

Set daoDB = OpenDatabase(App.Path, False, False, _
                    "Text;Database=" & App.Path & ";table=" & txtFile.Text)

If chkCreateTbl.Value = 1 Then
    'Use this if you do not already have a table created in Access.
    'Creates and appends the data in one step.
    strSQL = "SELECT * INTO [" & txtTable.Text & "] IN '" & _
                   App.Path & "\" & txtDatabase.Text & " '"
    strSQL = strSQL & "FROM " & txtFile.Text
    daoDB.Execute strSQL
Else
    'Delete data before importing - use if necessary.
    strSQL = "DELETE FROM [" & txtTable.Text & "] IN '" & _
                    App.Path & "\" & txtDatabase.Text & "'"
    daoDB.Execute strSQL
    'Append data to Access table.
    strSQL = "INSERT INTO [" & txtTable.Text & "] IN '" & _
                    App.Path & "\" & txtDatabase.Text & "'"
    strSQL = strSQL & "SELECT * FROM " & txtFile.Text
    daoDB.Execute strSQL
End If

GoTo ExitSub
   
ErrHandler:
    lblAction.Caption = "DAO Import - Error."
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
    
ExitSub:
    lblAction.Caption = "Complete..."
    daoDB.Close
    Set daoDB = Nothing
End Sub
				
Fungsi berikut adalah contoh objek FileSys di TextImport.vbp aplikasi. Kode ini digunakan dalam aplikasi ketika Anda Pilih tombol radio FileSys sebelum mengimpor. Melihat dalam kode contoh itu untuk menciptakan lapangan meja di akses, didasarkan pada berkas Schema_Header.ini, tidak perlu untuk loop melalui header file dan menciptakan tabel secara manual Jika Anda menggunakan pengandar ISAM teks. Meskipun, jika Anda menggunakan teks Islam TERPADU sopir kemudian tidak perlu untuk menggunakan FileSystemObject (dan itu bagian dari titik) kecuali jika Anda harus Gunakan FileSystemObject untuk impor, kemudian menggunakan DAO dan melakukannya dalam satu seperti yang ditunjukkan dalam kode contoh DAO. Karena Anda harus menggunakan DAO tetap (untuk membuat Recordset objek) bahkan jika Anda melakukan manipulasi data impor, kemudian gunakan DAO untuk seluruh proses karena Anda sudah memilikinya dimuat dalam memori untuk membuat recordset.
Private Sub FileSysImport()
On Error GoTo ErrHandler

lblAction.Caption = "FileSys Import..."

Dim daoDB As DAO.Database
Dim daoRs As DAO.Recordset
Dim fs As FileSystemObject
Dim ts As TextStream
Dim inLine As Variant
Dim strSQL As String
Dim i As Integer

If chkCreateTbl.Value = 1 Then
    'This is an eazy way to create the Table layout in Access based on the Schema_Header.ini file.
    DBEngine.IniPath = App.Path & "\Schema_Header.ini"
    Set daoDB = OpenDatabase(App.Path, False, False, "Text;Database=" & App.Path & ";table=" & txtFile.Text)
    strSQL = "SELECT * INTO [" & txtTable.Text & "] IN '" & App.Path & "\" & txtDatabase.Text & " '"
    strSQL = strSQL & "FROM " & txtFile.Text & " WHERE 1=0"
    daoDB.Execute strSQL
    Set daoDB = Nothing
    Set daoDB = OpenDatabase(App.Path & "\" & txtDatabase.Text, False, False)
Else
    DBEngine.IniPath = App.Path & "\Schema.ini"
    Set daoDB = OpenDatabase(App.Path & "\" & txtDatabase.Text, False, False)
    strSQL = "DELETE * FROM [" & txtTable.Text & "] IN '" & App.Path & "\" & txtDatabase.Text & "'"
    daoDB.Execute strSQL, dbFailOnError
End If

strSQL = "SELECT * FROM [" & txtTable.Text & "] WHERE 1=0"
Set daoRs = daoDB.OpenRecordset(strSQL, dbOpenDynaset, dbAppendOnly)

Set fs = New FileSystemObject
Set ts = fs.OpenTextFile(App.Path & "\" & txtFile.Text, ForReading, False, TristateUseDefault)

'This skips the column header.
If chkColHeader.Value = 1 Then
    inLine = Split(ts.ReadLine, ",")
End If

While Not ts.AtEndOfStream
    inLine = Split(ts.ReadLine, ",")
    daoRs.AddNew
    For i = 0 To UBound(inLine) - 1
        daoRs.Fields(i).Value = Left(inLine(i), daoRs.Fields(i).Size)
    Next i
    daoRs.Update
Wend

GoTo ExitSub

ErrHandler:
    lblAction.Caption = "FileSys Import - Error."
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
    
ExitSub:
    lblAction.Caption = "Complete..."
    If Not ts Is Nothing Then ts.Close
    If Not daoRs Is Nothing Then daoRs.Close
    daoDB.Close
    Set daoRs = Nothing
    Set daoDB = Nothing
    Set ts = Nothing
    Set fs = Nothing
End Sub
				
Contoh paling sederhana adalah sampel otomatisasi. Contoh TextImport.mdb digunakan dan contoh impor/ekspor spesifikasi telah dibuat di contoh .mdb file: sampel dan sampel w/kolom. Anda dapat menemukan spesifikasi pengaturan properti Properti tab Tab kontrol. Untuk mengimpor dengan atau tanpa nama kolom pertama baris membuat lain impor/ekspor spesifikasi dan menempatkan nama itu spesifikasi di txtSpecName kotak teks di tab control. Contoh Spesifikasi termasuk dalam sampel .mdb file: sampel w/kolom. Untuk mengimpor file teks dengan akses otomatisasi Anda hanya dapat mengeksekusi DoCmd.TransferText metode dari objek akses.
Private Sub AccessAutomateImport()
'Assumes table already exists.
On Error GoTo ErrHandler

lblAction.Caption = "Access Automation..."
   
Dim AccessApp As access.Application
Dim strDB As String
   
strDB = App.Path & "\" & txtDatabase.Text

Set AccessApp = New access.Application
AccessApp.OpenCurrentDatabase strDB
   
'To Import with/without Column names in first row create another Import/Export Specification
'and put the name of that specification in the Text box 'txtSpecName' on the Tab Control.
'An example Specification is included in the sample MDB - 'Sample w/columns'.
AccessApp.DoCmd.TransferText acImportDelim, txtSpecName.Text, txtTable.Text, App.Path & "\" & txtFile.Text

AccessApp.CloseCurrentDatabase

GoTo ExitSub

ErrHandler:
    lblAction.Caption = "Access Automation - Error."
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
    
ExitSub:
    lblAction.Caption = "Complete..."
    appAccess.Quit
    Set appAccess = Nothing
End Sub
				
Untuk rincian tambahan dan kode merujuk kepada contoh aplikasi TextImport.exe.

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
149090  (http://support.microsoft.com/kb/149090/EN-US/ ) ACC: Bagaimana menggunakan Schema.ini untuk mengakses Data teks
155512  (http://support.microsoft.com/kb/155512/EN-US/ ) ACC: Bagaimana untuk membuat Schema.ini File pemrograman
205439  (http://support.microsoft.com/kb/205439/EN-US/ ) PRB: File teks yang menggunakan non-standar teks Delimiters tidak mengurai dengan benar dengan Microsoft teks Driver

Berlaku bagi:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Kata kunci: 
kbdownload kbfile kbmdacnosweep kbrdo kbsample kbmt KB230265 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:230265  (http://support.microsoft.com/kb/230265/en-us/ )