• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

64 bit excel ADO csv dosyasına bağlantı

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,677
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

64 bit office 2013 yüklü sistemde csv dosyalarına hangi bağlantı yolu ile ulaşabilirim. Aşağıdaki yol ile olmadı.Yardımcı olabilir misiniz.


Kod:
    Set con = VBA.CreateObject("Adodb.Connection")
    con.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & _
    yol & ";Extensions=asc,csv,tab,txt;"
 
Korhan bey merhaba,

Aşağıdaki kod ile dosyadan veri alabiliyorum ama dosyadaki formatta datayı getiremiyorum.
Delimiter kullanmak gerekiyor ama istediğim gibi olmadı.

Kod:
Sub getir()
Cells.Clear
yol = "C:\Users\" & Environ("UserName") & "\Desktop\rapor\"
Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""text;hdr=no;FMT=Delimited"""

dosya = "deneme.csv"

sorgu = "select * from [" & dosya & "]"

Set rs = con.Execute(sorgu)

Range("a1").CopyFromRecordset rs
End Sub
 

Ekli dosyalar

Son düzenleme:
Bağlantıyı dikkatli okuduysanız, küçük bir registry ayarı gerektiğinden bahsetmiş.

.
 
Az önce dosyaları incelememiştim. Şimdi baktığımda "deneme.csv" bu metoda uygun görünmüyor. Diğer ikisinden biri "tab" ile ayrılmış. "FMT=TabDelimited" kullanmalısınız. Diğeri ( ; ) ile ayrılmış. Onun için önce registry ayarı ve "FMT=Delimited" kullanmalısınız.

Bu arada amacınız BDP programına dosya hazırlamksa, basit bir kopyala/yapıştır ile yapabilirsiniz.

.
 
Az önce dosyaları incelememiştim. Şimdi baktığımda "deneme.csv" bu metoda uygun görünmüyor. Diğer ikisinden biri "tab" ile ayrılmış. "FMT=TabDelimited" kullanmalısınız. Diğeri ( ; ) ile ayrılmış. Onun için önce registry ayarı ve "FMT=Delimited" kullanmalısınız.

Bu arada amacınız BDP programına dosya hazırlamksa, basit bir kopyala/yapıştır ile yapabilirsiniz.

.

Zeki bey teşekkürler.Bs kısmını örnek olsun diye hazırladım.Asıl işim deneme dosyası ile.Ado ile olmayacaksa,exceldeki veri sekmesi altındaki metin'den al özelliğini kullanacağım.Bütün gün Ado ile uğraştım ama olmadı.
 
Hemen pes etmeyin... :) Çalışıyor...
Masaüstünde " schema.ini " dosyası oluşturup içine şunu yapıştırın (ba-bs1.csv için):

Kod:
[ba-bs1.csv]
ColNameHeader=False
Format=Delimited(;)
Sonra aşağıdaki kodu çalıştırın:

Kod:
Sub getir()
Cells.Clear
yol = Environ("Userprofile") & "\Desktop\"
Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""text;hdr=no;"""

dosya = "ba-bs1.csv"

sorgu = "select * from [" & dosya & "]"

Set rs = con.Execute(sorgu)

Range("a1").CopyFromRecordset rs
End Sub
 
Hemen pes etmeyin... :) Çalışıyor...
Masaüstünde "schema.ini" dosyası oluşturup içine şunu yapıştırın (ba-bs1.csv için):

Kod:
[ba-bs1.csv]
ColNameHeader=False
Format=Delimited(;)

Sonra aşağıdaki kodu çalıştırın:

Kod:
Sub getir()
Cells.Clear
yol = Environ("Userprofile") & "\Desktop\"
Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""text;hdr=no;"""

dosya = "ba-bs1.csv"

sorgu = "select * from [" & dosya & "]"

Set rs = con.Execute(sorgu)

Range("a1").CopyFromRecordset rs
End Sub

Zeki bey çok teşekkürler. Elinize bilginize sağlık.
 
Geri
Üst