• DİKKAT

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

ADODB ile dosya yükleme de veri kaybı

Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
merhaba,
ADODB.Connection ile bir excel dosyasından veri yüklüyorum. ancak yüklediğim excel dosyasında bir hücrede 290karaketer var.
yaptığım incelemede 255 karakterini dosyadan çekmiş kalanına çekememiş.
ado'da böyle bir sınırlamamı var?
varsa eğer bunun limitini nasıl yükseltebiliriz?
teşekkürler
 
Merhaba,veriyi bir Excel kitabından, kendi Excel çalışma sayfama alıyorum.
 
Verilerin alınacağı Excel dosyasında, problemi yaşadığınız alanda ilk veri olarak örneğin 300 karakterlik bir metin girin, dosyayı kaydedip kapatın. Daha sonra ADO makrosunu çalıştırın....

.
 
Her seferinde ilk veriyi 300 mü girmemiz gerekiyor, yoksa farklı bir dosya dan veri çektiğimizde 255 karakter olarak tekrar sınırlama yapar mı?
 
Veriler 255 karakterden fazla uzunluktaysa, en uzunundan biraz daha fazla uzunlukta bir "geçici" veriyi yerleştirmek gerekir.

Ben denemedim ama, bu yöntem sorunu çözebilir diye önerdim.... Yoksa, registery ayarlarıyla falan uğraşmak lazım, eğer alışık değilseniz o işler daha riskli.

.
 
Maalesef o ihtiyacımı karşılamıyor, peki adodb de 255 karakterden fazla veriyi çekebilmesi için kod yok mu? Yabancı sitelere de baktım bulamadım.
 
ADO kullanılması zorunlu değilse alternatif çözümler sunabiliriz.
 
Adodb dosyayı açmadan hızlı yükleme yaptığı için kullanıyorum. Altertanif çözümler varsa tabiki kullanmak isterim. Yardımcı olursanız sevinirim
 
Alternatif çözüm için dosya örneklerini eklerseniz yardımcı olabiliriz.
 
merhaba, kodlarım aşağıdaki gibidir.

dosya = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx", Title:="Dosya Seç")

Dim Katalog As Object
Dim Tablo As Object

With Sheets("Sayfa5")
Set Baglanti = CreateObject("ADODB.Connection")
Baglanti.Open "provider=microsoft.ace.oledb.12.0;data source=" & dosya & ";extended properties=""excel 12.0;hdr=no"""
Set Rs = Baglanti.Execute("select * from [Sayfa1$]")
.Range("W" & 2)(1, 1).CopyFromRecordset Rs
End With
Set Baglanti = Nothing
 
Ben örnek dosyalarınızı talep etmiştim...

Paylaşım sitelerine yükleyip linki forumda paylaşabilirsiniz.
 
Excel4 makrosu kullanarak, veriler kapalı dosyadan alınacak şekilde bu mesaj ekinde bir alternatif hazırladım.

Dikkat edilmesi gereken hususlar;

1) Bilgisayarınızda C:\TestFolder şeklinde bir klasör oluşturun ve verilerin alınacağı Dosya.xlsx dosyasını bu klasöre yerleştirin.

Yani; veriler bilgisayarınızdaki C:\TestFolder\Dosya.xlsx dosyasının Sayfa1 isimli sayfasından alınacaktır.

2) Söz konusu C:\TestFolder\Dosya.xlsx dosyasında Sayfa1 isimli sayfada 1. satırda başlıklar olacak, altında veriler olacaktır. Sizin eklediğiniz örnek dosyadaki gibi en üstte boş satırlar olmayacak....

3) C:\TestFolder\Dosya.xlsx dosyası kapalı durumdayken, diğer dosyayı açın ve sayfanın üzerindeki butona tıklayın. Veriler, kapalı dosyadan bu dosyaya aktarılacaktır...


.
 

Ekli dosyalar

Son düzenleme:
Haluk bey merhaba
elinize sağlık,şimdi onu deniyordum.
denedim ama tam işime yaramadı. çünkü dosya yeri sabit olduğu için tam işimi görmeyecektir.
çünkü bu exceli başka kullanıcılarda kullanacak ve yüklenen dosya yeri farklı olacaktır.
 
O zaman aşağıdaki alternatileri inceleyebilirsiniz...
.
 

Ekli dosyalar

Son düzenleme:
Google Drive'dan indirmiş olduğunuzu düşünerek, linkleri sildim....

"Altın Üye" olursanız, sadece burası değil, forumdaki tüm mesajların ekindeki dosyaları indirebilir veya dosya ekleyebilirsiniz...

.
 
Geri
Üst