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.
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 file | Ukuran |
|---|
| ImportText.vbp | 1.464 |
| ImportText.vbw | 56 |
| Sample.out | 3,346 |
| Sample.txt | 3,346 |
| Sample_Header.txt | 3,708 |
| Schema.ini | 422 |
| Schema_Header.ini | 420 |
| TextImport.frm | 28,678 |
| TextImport.frx | 84 |
| TextImport.mdb | 108,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.
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