Skip to main content

AccessTr.neT


Bir Klasörde Bulunan Txt Leri Accesste Tabloya Eklemek İstiyorum.

Bir Klasörde Bulunan Txt Leri Accesste Tabloya Eklemek İstiyorum.

#5
1 - ekte de göreceğiniz gibi Access tablonuzdaki hisse adı alanını metin/string yapıp, yeni bir ID (Otomatik sayı) alanı ekledim
yani önce tablo yapınızı değiştirmeniz gerekiyor
2 - aşağıdaki kod sadece Access ile aynı dizinde bulunan IMKBH'ANGEN.txt dosyası için
(ihtiyaç halinde belli bir klasördeki tüm txt dosyalarının seçilmesi sağlanabilir)
3 - aşağıdaki kod bir butona atanmalı

Sub txtVeriAl() 
Dim s As Object
Fname$ = CurrentProject.Path & "\IMKBH'ANGEN.txt"

' Dim s As New adodb.stream
Set s = CreateObject("adodb.stream")
s.Charset = "utf-8"
s.Open
s.LoadFromFile (Fname$)

Dim txt As String
txt = s.readText

s.Close

dzStr = Split(txt, vbNewLine)
For x = LBound(dzStr) To UBound(dzStr)
If Len(dzStr(x) & "") = 0 Then GoTo SonStr
dzstn = Split(dzStr(x), "#")
xDeger = " """ & dzstn(0) & """"
xDeger = xDeger & ", '" & dzstn(1) & "'"
xDeger = xDeger & ", " & CLng(CDate(dzstn(2)))
xDeger = xDeger & ", " & Replace(CDbl(CDate(dzstn(3))), ",", ".")
xDeger = xDeger & ", " & dzstn(4)
xDeger = xDeger & ", " & Replace(dzstn(5), ",", ".")
xDeger = xDeger & ", '" & dzstn(6) & "'"
xDeger = xDeger & ", '" & dzstn(7) & "'"

'IMKBH'ANGEN#ALIS#2023.12.05#10:05:55#371#14,45#İlk Alım#0
strSQL = "INSERT INTO [Veritabanı] ("
strSQL = strSQL & " [Hisse Adı]"
strSQL = strSQL & ", [İşlem Türü]"
strSQL = strSQL & ", [Tarih]"
strSQL = strSQL & ", [Saat]"
strSQL = strSQL & ", [Adet]"
strSQL = strSQL & ", [Fiyat]"
strSQL = strSQL & ", [Açıklama]"
strSQL = strSQL & ", [Yöntem]"

strSQL = strSQL & ") VALUES ("
strSQL = strSQL & xDeger
strSQL = strSQL & ")"

CurrentDb.Execute strSQL
' DoCmd.RunSQL strSQL
SonStr:
Next x
KlnSQL = " (SELECT First(Veritabanı.ID)"
KlnSQL = KlnSQL & " FROM Veritabanı"
KlnSQL = KlnSQL & " GROUP BY [Hisse Adı] & [İşlem Türü] & [Tarih] & [Saat] & [Adet] & [Fiyat] & [Açıklama] & [Yöntem] & '')"

SilSQL = " delete * from [Veritabanı]"
SilSQL = SilSQL & " where [ID] Not IN (" & KlnSQL & ")"
CurrentDb.Execute SilSQL
' DoCmd.RunSQL SilSQL

End Sub
.rar txt2Access_hy.rar (Dosya Boyutu: 21,82 KB | İndirme Sayısı: 4)
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
RE: Bir Klasörde Bulunan Txt Leri Accesste Tabloya Eklemek İstiyorum. - Yazar: berduş - 07/12/2023, 02:03
Task