• DİKKAT

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

Excel ado kapalı dosya büyük-küçük harf

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Hayırlı akşamlar arkadaşlar,

Aşağıdaki kodlarda İçinde "GENEL" Kelimesi geçen tüm satırları çekmeye çalışıyorum fakat kelime büyük ya da küçük harflerde ("Genel-genel-GENEL") olabiliyor.
Fakat arama değerine neyi yazarsam onu bulabiliyorum. Farklı bir yöntem var mı yoksa tüm ihtimaller için dngü mü kurmam gerekir?

Kod:
Sub Kapalıdan_Al3()
    Dim Con As Object, Rs As Object, Sorgu As String

 Application.ScreenUpdating = False
    Set Con = CreateObject("Adodb.Connection")
    
    Set Rs = CreateObject("Adodb.RecordSet")
 
    Set kns = Sheets("kapalı")
kns.Range("A2:K" & Rows.Count).ClearContents
    deger = "%GENEL"
     Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
        ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";extended properties=""excel 12.0;hdr=yes"""
        Sorgu = "SELECT * FROM [acık$] WHERE firma LIKE  '" & deger & "%'  "
        
 Rs.Open Sorgu, Con, 1, 3
          kns.Range("A2").CopyFromRecordset Rs
        Rs.Close: Con.Close
    Set Con = Nothing: Set Rs = Nothing: Sorgu = ""

 Application.ScreenUpdating = True
     

End Sub
 
deger1, deger2 deger3 olarak 3 kelimeyi de girin. Sorgu içerisinde de Or ile ekleme yapıp deneyebilirsiniz.
 
Evet o da olabilir teşekkürler.

Sanırım kodlar sadece belirtilen değerleri arıyor.?
 
Burada yine farklı bir durum için bağlantıyı döngü ile kurmak istesemne yapmam gerekir?

Con.Open 'dan önce başlatırsam bağlantı sürekli kapanıp açılıyor.
Sonra başlatırsam hata alıyorum.
 
Merhaba,
Kodlarınızı yaptığım küçük değişiklikle deneyiniz.

Kod:
Sub Kapalıdan_Al3()
    Dim Con As Object, Rs As Object, Sorgu As String
 Application.ScreenUpdating = False
    Set Con = CreateObject("Adodb.Connection")
    Set Rs = CreateObject("Adodb.RecordSet")
    Set kns = Sheets("kapalı")
kns.Range("A2:K" & Rows.Count).ClearContents
'    deger = "%GENEL"'[COLOR="Red"][B]BURAYI İPTAL ETTİK[/B][/COLOR]
     Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
        ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";extended properties=""excel 12.0;hdr=yes"""
        Sorgu = "SELECT * FROM [acık$] WHERE firma LIKE[COLOR="red"][B] '%GENEL%'[/B][/COLOR]"
 Rs.Open Sorgu, Con, 1, 3
          kns.Range("A2").CopyFromRecordset Rs
        Rs.Close: Con.Close
    Set Con = Nothing: Set Rs = Nothing: Sorgu = ""
 Application.ScreenUpdating = True
End Sub
 
Maalesef BüyükKüçük harf duyarlılığı ortadan kalkmadı...
 
Firma içinde sadece "GENEL" kelimesini içerenleri sorgulamak için:
Kod:
Sorgu = "SELECT * FROM [acık$] WHERE strcomp(firma, 'GENEL', 0) = 0"

Firma içinde sadece "Genel" kelimesini içerenleri sorgulamak için:
Kod:
Sorgu = "SELECT * FROM [acık$] WHERE strcomp(firma, 'Genel', 0) = 0"

....
Şeklinde sorgu cümlenizi değiştiriniz.
 
Teşekkürler deneyeceğim.
Peki liste hâlindeki verileri sorgulamak için ne yapmalıyım?
Diyelim ki 100 satırlık veriler var ve ben bunları veritabanından sorgulamak istiyorum. Yukarıda da sormuştum. Döngü ile nasıl yaparım ya da alternatif yolu var mı?
 
Firma içinde sadece "GENEL" kelimesini içerenleri sorgulamak için:
Kod:
Sorgu = "SELECT * FROM [acık$] WHERE strcomp(firma, 'GENEL', 0) = 0"

Firma içinde sadece "Genel" kelimesini içerenleri sorgulamak için:
Kod:
Sorgu = "SELECT * FROM [acık$] WHERE strcomp(firma, 'Genel', 0) = 0"

....
Şeklinde sorgu cümlenizi değiştiriniz.

Kodları denedim fakat hiçbir veri getirmedi.
 
Örnek dosyanızı eklemeniz mümkün mü?
 
Alternatif olarak böyle denermisiniz.

Kod:
Sub Kapalıdan_Al3()
Dim Con As Object, Rs As Object, Sorgu As String

Application.ScreenUpdating = False
Set Con = CreateObject("Adodb.Connection")

Set Rs = CreateObject("Adodb.RecordSet")

Set kns = Sheets("GenelCari")
kns.Range("A2:K" & Rows.Count).ClearContents
deger = [COLOR="Red"]"GENEL"[/COLOR]

Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";extended properties=""excel 12.0;hdr=yes"""
Sorgu = "select * from [Fatİrsaliye$] where firma like '%" & UCase(deger) & "%'" & " or " & "firma like '%" & LCase(deger) & "%'" & " or " & "firma like '%" & WorksheetFunction.Proper(deger) & "%'"
Rs.Open Sorgu, Con, 1, 3
kns.Range("A2").CopyFromRecordset Rs
Rs.Close: Con.Close
Set Con = Nothing: Set Rs = Nothing: Sorgu = ""

Application.ScreenUpdating = True
End Sub
 
Alternatif olarak böyle denermisiniz.

Kod:
Sub Kapalıdan_Al3()
Dim Con As Object, Rs As Object, Sorgu As String

Application.ScreenUpdating = False
Set Con = CreateObject("Adodb.Connection")

Set Rs = CreateObject("Adodb.RecordSet")

Set kns = Sheets("GenelCari")
kns.Range("A2:K" & Rows.Count).ClearContents
deger = [COLOR="Red"]"GENEL"[/COLOR]

Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";extended properties=""excel 12.0;hdr=yes"""
Sorgu = "select * from [Fatİrsaliye$] where firma like '%" & UCase(deger) & "%'" & " or " & "firma like '%" & LCase(deger) & "%'" & " or " & "firma like '%" & WorksheetFunction.Proper(deger) & "%'"
Rs.Open Sorgu, Con, 1, 3
kns.Range("A2").CopyFromRecordset Rs
Rs.Close: Con.Close
Set Con = Nothing: Set Rs = Nothing: Sorgu = ""

Application.ScreenUpdating = True
End Sub

Tamamdır bu da güzel oldu . Olmayanı da bulmuş oldum bir tane daha varmış :)

Bir nevi ilk yaptığımız üç deger verip aratmak gibi olmuş ama daha kullanışlı olduğu kesin.
 
Merhaba,

Aşağıdaki sorguyu dener misiniz.

Kod:
  Sorgu = "SELECT * FROM [Fatİrsaliye$] where lcase(FİRMA) like '%genel%' "
 
Merhaba,

Aşağıdaki sorguyu dener misiniz.

Kod:
  Sorgu = "SELECT * FROM [Fatİrsaliye$] where lcase(FİRMA) like '%genel%' "

Aynen bu daja mantıklı Çok teşekkür ederim.

Ayrıyeten konu içerisinde bir sorum olmuştu bununla ilgili ne yapabilirim?
"Özetle; Excel sayfasında diyelim 100 satırlık veri var bu değerleri aranan değer koşuluna bağlı olarak kapalı dosyadan nasıl veri çekebilirim?"
 
Kapalı dosyadan veri çekmek sorgu ile değil,bağlantı yolu ile ilgilidir.Aynı sorgu ile kapalı dosyadan'da veri çekebilirsiniz
 
Kapalı dosyadan veri çekmek sorgu ile değil,bağlantı yolu ile ilgilidir.Aynı sorgu ile kapalı dosyadan'da veri çekebilirsiniz

Aynı sorgu ile çekebiliyorum fakat sorunum dediğim gibi coklu deger olduğununda sorguyu sürekli en baştan çalıştırmak.
 
Çoklu değerden neyi kastettiğinizi anlamadım.
 
Çoklu değerden neyi kastettiğinizi anlamadım.

şöyle ki Üstteki örnekde sadece Genel kelimesini aramıştım.Tek kelime
Bunun gibi 100 lerce veri var ve ben bu verilere göre sırasıyla o kelimeyi içeren ya da eşit ne kadar veri varsa çekmek istiyorum.

Normalde bunu önceki attığım kodların en başına satır sayısı kadar döngü kuuraark yapıyorum. Haliyle o kodlarda bağlantı süreklü açılıp kapandığı için istediğim gibi hızlı veri çekemiyorum
 
Geri
Üst