ADODB ile dosya yükleme de veri kaybı

Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
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?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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?

.
 
Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
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?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"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:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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:

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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
 

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
791
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝365 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
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:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 
Üst