Skip to main content

AccessTr.neT


txt den sıralı veri almak...

txt den sıralı veri almak...

Çözüldü #2
Bence verileri veri alma sihirbazı ile elle değil, bir modülle almalısınız. O zaman değerleri değişkenlere atayıp "not" şeklinde belirlenmiş alanlarda & veya + işaretleriyle birleştirirsiniz. Bunu yapmak için basit bir Sql sorgusu yeterli.. Birleştirme yapacaksınız sonuçta.

Verileri vb ile alma konusunda karar verirseniz satır satır okutmanız lazım. Aralardaki boş satırları seperator olarak kullanacaksanız sorun olmaz. Seperatorlere gelene kadar okuma eylemi sürer. Ben size bununla ilgili benim kullandığım bir modülün kodlarını buraya aktarayım. (Not: Modül bana ait değildir, ama kendi isteğime göre düzenledim. Şu andaki halini göndereyim size. Bu şekilde 8 adet farklı dosyadan veri alabiliyorum. Dosyaların yerlerini de elle gösterme şeklinde düzenledim.


Kod:
Sub OpenTextFileTest1()
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fs, f
    Dim name, name1, text, path As String
    Dim txtLen, adetYıldız, adetTarih As Long
    Dim cnn As New ADODB.Connection
    Dim rst As New Recordset
    Dim fileName As String
    Dim result As Integer
    Dim i As Integer
    Dim dosya, Klasor
    Dim strKlasöradı As String
    On Error GoTo Err
    strKlasöradı = BrowseFolder("Seçmek istediğiniz klasör?")
    Klasor = strKlasöradı

'******işletme***************
    ChDir (Klasor)
       dosya = Dir("*İsletmeBilgileri.txt")
    DoCmd.SetWarnings True
  
            name = dosya
            Set fs = CreateObject("Scripting.FileSystemObject")
            Set f = fs.OpenTextFile(name, 1, -2)
            text = f.ReadAll
        
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile(name, 1, -2)
    Set cnn = CurrentProject.Connection
    rst.Open "işletme", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    s = 0
    Do While f.AtEndofStream <> True
    text = f.readLine
    s = s + 1
    If s = 1 Then madi = Trim(text)
    If s <> 1 Then
        STRarray = Split(text, "$")
        rst.AddNew
        rst("işletmekodu") = STRarray(0)
        rst("işletmeadi") = STRarray(1)
        rst("ilbölgekodu") = STRarray(3)
        rst("ilçekodu") = STRarray(4)
        rst("kasabakodu") = STRarray(5)
        rst("köykodu") = STRarray(6)
        rst("anaişletmekodu") = STRarray(7)
        rst.Update
    End If
    Loop
    f.Close
    Set f = Nothing
    Set fs = Nothing
    Set rst = Nothing
    Set cnn = Nothing
Err:
If Err.Number = 62 Then
MsgBox "Belirttiğiniz dosya boş", vbOKOnly, "UYARI"
Else
End If

'***************işletme sonu**************

Burdan sonra başka dosyaya geçiliyor ama sizin örnekte tek txt dosyası olduğu için gerekli değil. Kodları iyi inceleyin, kendinize uyarlayın. Bu arada projenizin referans penceresinde önce ado2.1 sonra da dao 3.6 şeklinde sıralansın. Aksi taktirde gözat eylemi çalışmaz.

Kolay gelsin.
İnadına, ille de Accesstr.net...
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
txt den sıralı veri almak... - Yazar: karaayhan - 05/12/2008, 01:16
Cvp: txt den sıralı veri almak... - Yazar: mehmetdemiral - 05/12/2008, 01:52
Cvp: txt den sıralı veri almak... - Yazar: karaayhan - 05/12/2008, 13:45
Cvp: txt den sıralı veri almak... - Yazar: alpeki99 - 05/12/2008, 14:08
Cvp: txt den sıralı veri almak... - Yazar: karaayhan - 06/12/2008, 13:13
Cvp: txt den sıralı veri almak... - Yazar: karaayhan - 07/12/2008, 12:52
Cvp: txt den sıralı veri almak... - Yazar: karaayhan - 09/12/2008, 02:19
Task