• 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ı

peki hocam, bir soru daha sormak istiyorum.
Ado ile gönderdiğim kapalı dosyadaki A ve B sütunundaki tüm boşlukları silme işlemi yapılabilir mi?
 
Sizin demek istediğiniz, verilerin olduğu Dosya.xlsx dosyasında sütun başlıkları ve veriler 1 satırdan itibaren değil de, 3. satırdan başlaması gerekirse ne yapabiliriz......? Bunu mu demek istiyorsunuz?

.
 
Hayır hocam, ben dosya xlsm programı ile dosya xlsxe ado ile bağlantı yapıp, dosya.xlsx teki A-B sütundaki boşlukları silebilir miyiz?
 
"Boşluk silmek" ile ne kastteğinizi tam anlamadım ama ADO ile Excel'de "gerçek anlamda" bu tür bir işlem için cevabım .... "hayır".

.
 
Son düzenleme:
Haluk hocamın dediği gibi fiziksel olarak silinemez.Ancak bir alan dağa oluşturup,o alanda DOĞRU ,YANLIŞ diyerek ,sonra sorguda onu sorgulayıp istemediğiniz verileri almayabilirsiniz.:cool:
 
Son düzenleme:
Peki adoda bir hücrede 255 karakterden fazla almamasının sebebi nedir


ADO'nun MS Excel üzerindeki kısıtlaması ..... bu kadar basit. Geliştirilen her programın mevcut teknlojiyle uyumlu, mantıklı olacak şekilde bir yapılandırılması vardır. Aksi takdirde, programlar sizin hayal ettiğiniz sınırlarda çalışacak şekilde hazırlansalar, belki de sizin kullandığınız bilgisayar o programın çalışmasına imkan vermeyecektir. Tıpkı, en son model oyun programının en can alıcı grafik animasyonlarını sizin bilgisayarınızın destelememesi gibi.... Bu nedenle, herhangi bir program kullanırken, öncelikle o programın ne yapıp, ne yapamayacağını bilmeniz gerekir ....

Örneğin; MS Excel'in hücreleri, nümerik verilerde 15 basamağa kadar duyarlıdır. Daha fazlasında beklediğiniz sonucu alamazsınız.

Veya, Augmentin 1000 mg geniş spectrumlu bir antiyobitiktir, ama her enfeksiyona beklenen tepkiyi vermez.

Ya da, SAP2000 inşaat mühendisliğinde en favori yazılımdır.... Ama, SAP2000 ile dizayn edemeyeceğiniz yapılar da var.

Burada önemli olan; yazılımcının karşılaşabileceği sorunların farkında olabilmesi ve ona göre alternatif enstrümanları kullanabilmesidir....

Diğer yandan; bahsettiğiniz MS EXcel'de ADO kullanarak yine de çözülebilir..... bundan 6 No'lu mesajımda kısmen bahsettim, ama gördüğüm kadarıyla sizin için uygun değil.


.
 
Son düzenleme:
Bir Access dosyasına bağlı tablo oluşturarak 300 karakter almayı başardım. Bağlı tablo için nasıl bir connection kullandığını access bilgim yetersiz olduğu için bilemiyorum ama problem belki de sağlayıcıda olabilir...
SQL:
SELECT len(f1)
FROM Sayfa1;

1561140432414.png
 
Merhaba @cengiz123,

Haluk Bey'in de belirttiği gibi Excel'in limitlerini bu adresten inceleyebilirsiniz.

... bir hücrede 255 karakterden fazla almamasının sebebi nedir

Bu arama sonuçlarını inceleyiniz sorunuza çözüm bulabilirsiniz.
Ayrıca belirtmekte yarar var: Access, 97 ++ üstü sürümlerinde Unicode kullanır. (UTF-8) 8 Bit de en büyük yazılabilecek sayı = 11111111 = 255 dir. Kim bilir belki de bu sebeptendir ;)

Altyapı Jet Engine Database olmasından ötürü, TypeGuessRows ayarları ile ilgili bilgi edinmenizde fayda var. Sorunu gidermeye yardımcı olabilir.

İyi çalışmalar.
 
Son düzenleme:
Alternatif;

Dosya gizli olarak açılır ve kopyala-yapıştır yöntemi ile veri aktarımı yapılır.

Kod:
Sub Veri_Al()
    Dim S1 As Worksheet, Dosya As Variant, XL_App As Object, WB As Object, WS As Object
   
    Dosya = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx", Title:="Dosya Seç")
   
    If Dosya = False Then Exit Sub
   
    Application.ScreenUpdating = False
   
    Set S1 = Sheets("Sayfa5")
    S1.Cells.ClearContents
    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    Set WB = XL_App.Workbooks.Open(Dosya)
    Set WS = WB.Worksheets(1)
   
    WS.UsedRange.Copy
    S1.Range("A2").PasteSpecial Paste:=xlPasteValues
    S1.Range("A1").Select

    WB.Close 0
   
    Set S1 = Nothing
    Set WS = Nothing
    Set WB = Nothing
    Set XL_App = Nothing
   
    Application.ScreenUpdating = True
End Sub
 
Geri
Üst