Makale numarası: 230265 - Son Gözden Geçirme: 05 Ağustos 2004 Perşembe - Gözden geçirme: 3.4

ImportText.exe metin, ADO/RDO/DAO/Filesys/Otomasyon ile Access içine alma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

ImportText.exe örnek metin dosyaları, bir Microsoft Access veritabanına almak için çeşitli yolları gösterilmektedir. Metin verilerini bir Access veritabanına almak için birçok yol vardır ve genellikle, görev gereksinimlerine göre en iyi seçenek belirlenir.

  • ado
  • rdo
  • dao
  • Filesys
  • Otomasyon
Örnek uygulama, <a1>Ayrıntılar</a1> yukarıdaki seçeneklerden kodlama bağlı.

Daha fazla bilgi

Aşağıdaki dosyalar Microsoft Yükleme Merkezi'nden yüklenebilir:

TextImport.exe (http://download.microsoft.com/download/vb60pro/sample/1/w9xnt4/en-us/textimport.exe)

Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Bu tabloyu kapaBu tabloyu aç
FilenameBoyut
ImportText.vbp1,464
ImportText.vbw56
Sample.out3,346
Örnek.txt3,346
Sample_Header.txt3,708
Schema.ini dosyası422
Schema_Header.ini420
TextImport.frm28,678
TextImport.frx84
TextImport.mdb108,544


Tüm dosyaları, aynı klasörde bulunmalıdır. Örnek ImportText.vbp uygulamayı çalıştırın ve farklı bir alma/verme Seçenekleri'ni inceleyin. Örnek TextImport.mdb kullanılır ve uygulama yolunda bulunması. Varsayılan örnek metin örnek.txt dosyadır. Sample_Header.txt dosya bulunur ve metin dosyası için sütun başlığı içerir. Bir başka bir şema dosyası Schema_Header.ini, the ColNameHeader kullanarak göstermek için kullanılabilir = Sample_Header.txt dosyaya karşılık gelen şema dosyasında doğru seçenek.

Gösterilen seçenekler arasında veri almak için DAO, büyük olasılıkla en verimli (en az katmanları) ise veya ayak özellikle bir Access veritabanına alma, küçük bellek izi;.

Her bir veri erişim yöntemi için yüklenen kitaplıkları için genel bir bakış için aşağıdaki listeye bakın.
  • FileSys nesneleri örnek: Scripting çalışma zamanı modülü + DAO kitaplıkları + Jet kitaplıkları
  • RDO örnek: RDO kitaplıkları + ODBC kitaplıkları + ODBC Jet kitaplığı + Jet kitaplıkları + metin ISAM sürücüsü
  • ADO (varsayılan örnek): ADO kitaplıkları (OLEDB + MSDASQL) + ODBC kitaplıkları + ODBC Jet kitaplığı + Jet kitaplıkları + metin ISAM sürücüsü
  • Otomasyon Örneği: MSOffice çalışma zamanı kitaplığı. Için DAO örnek: DAO kitaplıkları + Jet kitaplıkları + metin ISAM sürücüsü
Aşağıdaki işlevi TextImport.vbp uygulamada DAO nesne örnektir. Almadan önce <a0>DAO</a0> radyo düğmeyi tıklattığınızda bu kod, uygulamada kullanılır. DAO örnek, bir recordset'i ve veri işleme örnekte olduğu gibi yalnızca FileSys nesneleri için döngü ekleyerek değiştirebilirsiniz.
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
				
TextImport.vbp uygulama FileSys nesne örneğinde aşağıdaki işlevidir. Bu kod, uygulamada almadan önce FileSys seçenek düğmesini seçtiğinizde kullanılır. Örnek kodu Access'te Schema_Header.ini dosyasını temel alan, tablo düzenini oluşturmak için üstbilgi dosyası döngü ve Text ISAM sürücüsü kullanıyorsanız, tabloyu el ile oluşturmak için gerek fark. Ancak, metin ISAM kullanıyorsanız, sürücü yok sonra kullanmazsanız FileSystemObject alın, sonra DAO kullanın ve bunu bir DAO örnek kodda gösterildiği gibi FileSystemObject (ve diğer bir deyişle noktasının parçası) kullanmak gerekmez. Veri işleme alma gerçekleştirdiğiniz olsa bile, DAO yine de (recordset nesnesi oluşturmak için <a0></a0>) kullanmanız gerekir, çünkü zaten kayıt kümesi oluşturmak için bellekte yüklü olması sonra DAO işlemin tamamı için kullanın.
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
				
Basit örnek otomasyon örnektir. Örnek .mdb dosyasında oluşturulan TextImport.mdb kullanılan örnek ve örnek alma/verme belirtimleri: örnek ve sütunları kullanarak örnek. Belirtimi</a0> özellik ayarı, sekme denetiminin özellikleri sekmesinde bulabilirsiniz. Adları ilk satırda içeren veya içermeyen sütun almak için başka bir alma/verme belirtimi oluşturmak ve adı bu belirtimi metin kutusunu txtSpecName sekme denetimi yerleştirme. Örnek .mdb dosyasında bulunan bir örnek belirtimi: w/sütunları örnekleme. Access Otomasyon ile metin dosyasını almak için yalnızca erişim nesnesinin DoCmd.TransferText yöntemi yürütebilirler.
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
				
Için ek ayrıntılar ve kod için örnek uygulama bakın TextImport.exe.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
149090  (http://support.microsoft.com/kb/149090/EN-US/ ) ACC: Nasıl Schema.ini dosyası metin veri erişmek için kullanılır
155512  (http://support.microsoft.com/kb/155512/EN-US/ ) ACC: nasıl bir Schema.ini dosyası programsal olarak oluştur
205439  (http://support.microsoft.com/kb/205439/EN-US/ ) SORUN: Non-Standard metin sınırlayıcı kullanan metin dosyaları düzgün Microsoft Metin sürücüsü ile Çözümle Not

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbdownload kbfile kbmdacnosweep kbrdo kbsample KB230265 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:230265  (http://support.microsoft.com/kb/230265/en-us/ )