• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü ADO ile çoklu dosya birleştirme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

ERDAL

Bronz Üye
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
3 Nis 2021
Mesajlar
262
Çözümler
1
Aldığı beğeni
44
Excel V
Office 2013 TR
Konuyu Başlatan
Merhaba arkadaşlar;

Excel dosyalarını alt alta gelecek şekilde ADO kullanarak birleştirmek istiyorum.
Birleştirme işlemini her dosya için ayrı ayrı sorgu yazarak yapıyorum. Bu işlemi tek sorgu ile yapmak için ne yapabiliriz.

Kullandığım kod;

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • 1_HEDEF_DOSYA.xlsb
    34.5 KB · Gösterim: 9
  • Bina Kullanım Şekli (MEB Dışı).xlsx
    14.3 KB · Gösterim: 10
  • Bina Kullanım Şekli (Özel).xlsx
    79.2 KB · Gösterim: 10
  • Bina Kullanım Şekli (Resmi).xlsx
    15.3 KB · Gösterim: 10
  • Bina Tahsis Durumu.xlsx
    12.5 KB · Gösterim: 9
Çözüm
aşağıda 4 farklı yöntem ve en altta da hız testi ve ortalamaları verilmiştir
Not: kendi çalışmamda kendi dosya yolunu ve sayfa isimlerini kullandığımdan o kısımları kendi çalışmanıza uyarlamanız gerekebilir.
en hızlı yöntem
yanılmıyorsam ilk önerdiğim koddu sadece sizin kullandığınız çoklu döngüyü teke indirmiştim
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
aşağıdaki şekilde dener misiniz?
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
alternatif olarak aşağıdaki kod da kullanılabilir

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Son düzenleme:
Halil Hocam, teşekkür ederim elinize emeğinize sağlık.
Union ile tek sorgu ile yapamazmıyız.
 
Son mesajimda Zaten union ile tek sorgu kullanılarak yapıldı. Kast ettiğiniz tam olarak ne?
 
6. mesajdaki kod güncellenmiştir: dosyadi alanını tanımlamayı unutmuşum aşağıdaki satır eklenmiştir
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Halil hocam, kusura bakmayın, biraz geç döndüm.
İşin açğı başka yollar varmıdır diye biraz bekledim.
Kodlar çalışıyor. Teşekkür ederim. Elinize emeğinize sağlık.
Hocam;
sql = Mid(sql, 12) bu kısmı analayamadım.
 
sql = Mid(sql, 12) bu kısmı analayamadım.
döngüde sql = sql & " Union All " kullanılıyor bu da her sorgunun başına otomatik olarak Union All ekler en başa eklenmiş fazladan Union All satırını silmek için kullanılıyor.
 
Son düzenleme:
Hocam, buradaki 12 ne için
 
ilk " Union All " verisini atlamak için gerekli uzunluk
mid() fonksiyonu ve " Union All " ilgili bir araştırma yaparsanız daha faydalı olacağı kanaatindeyim
iyi çalışmalar
 
unionlu kod sorun mu çıkardı? çözüm olarak diğer mesajımı işaretlediğiniz için emin olamadım?
 
Hocam hayır sorun çıkarmadı. İkisini birden işaretleye biliyor muyuz
 
bildiğim kadarıyla birden fazla mesajı doğru olarak değerlendirebiliyorsunuz, ama maalesef tek cevap çözüm olarak işaretlenebiliyor.
siz "unionla yapılabilir mi?" diye sorduğunuz için sormuştum.
 
bu arada son olarak şunu sormak istiyorum; bir seferde en fazla kaç dosyadan veri çekiliyor?
yanılmıyorsam sorgularda uzunluk sınırlaması var: yani çok fazla dosya varsa, sorgu çok uzun olduğundan hata verebilir.
 
bu arada son olarak şunu sormak istiyorum; bir seferde en fazla kaç dosyadan veri çekiliyor?
yanılmıyorsam sorgularda uzunluk sınırlaması var: yani çok fazla dosya varsa, sorgu çok uzun olduğundan hata verebilir.
Genelde en fazla 10 fakat yılda bir defa 200 oluyor.
 
uygun bir zamanda farklı şekilde yapılıp yapılamayacağına bir bakayım
en azından union olmasa bile tek bağlantı/connection ile halledilebilir, yada sorgu uzunluğu kontrol edilerek parçalara ayrılabilir
 
uygun bir zamanda farklı şekilde yapılıp yapılamayacağına bir bakayım
en azından union olmasa bile tek bağlantı/connection ile halledilebilir, yada sorgu uzunluğu kontrol edilerek parçalara ayrılabilir
Hocam Teşekkür ederim
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst