Çözüldü Sql ile Verileri Filtreleme

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Merhaba daha öncede foruma yazmıştım sunucu üzerinden veri filtrelemeyi hatta destekten bir kişi ilgileniyordu .Arama formumdaki filtrelemeyi sunucudan verileri alacak şekilde filtreleme olacaktı yardımcı olabilir misiniz ben çözemedim ?
 

Ekli dosyalar

  • Resim ekle1 (1) (1) (1).xlsm
    607.2 KB · Gösterim: 5

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Öncelikle cevaplamak gereken bir kaç soru var.

1. Hangi form üzerinde arama yapmak istiyorsunuz?

2. Arama yapacağınız tablonun alanları nelerdir?

3. Aramayı hangi yöntemi kullanarak yapmak istiyorsunuz? (Örnek: TextBox_Change olayında girmeye başlar başlamaz mı arama yapsın? Ya da bütün bir arama metnini girdikten sonra buton ile mi arama yapsın?)

4. Tablonuzdaki hangi alanlara göre arama yapmak istiyorsunuz? (Demek istediğim tablonuzda 10 farklı alan var diyelim, bu alanların bazılarında arama yapmak istemiyor olabilirsiniz?)

5. Arama yaparken birden fazla alanı kullanacak mıyız?
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Bir Örnek hazırladım. Kontrol eder misiniz?
 

Ekli dosyalar

  • Örnek.zip
    55.8 KB · Gösterim: 13
Çözüm

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Burada Access içinde bulunan "AramaSorgusu" adındaki sorgu arama yaparken null değer gönderme ile ilgili güzel bir örnek teşkil ediyor bilmeyenler için.
Bir parametre Hem bir alanla ilişkilendirilip ( "Adi Like [@Adi] gibi" ya da "Adi = [@Adi]" gibi ) hem OR ile IS NULL kontrolü yaptırılarak null değer kontrolü yapılabilir. ilk koşul uyarsa ilk koşula göre veri getirir, ikinci IS NULL koşuluna uyarsa ilgili alanın aramasını gözardı etmiş oluruz.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
İnceledim hocam çalışıyor programıma uygun bir arama seçeneği bende sizin daha önceki bir örneğinizi uyarlamaya çalışıyordum ..
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
İnceledim hocam çalışıyor programıma uygun bir arama seçeneği bende sizin daha önceki bir örneğinizi uyarlamaya çalışıyordum ..
Bakın yazdığım kodları "orada onu yazmış, burada bunu yazmış" şeklinde ezber değil de hangi SATIR nerede ne işe yarıyor şeklinde değerlendirirseniz çok daha faydalı olacaktır uyarlama konusunda.

Dediğim gibi Ekleyebiliyorsunuz, Silebiliyorsunuz, Güncelleyebiliyorsunuz, Kayıt çekebiliyorsunuz tek yapamadığınız şey arama yapmak kaldı.
Zaten onu da çözebileceğinize inanıyorum çok basit bir kaç detay var dikkat edilmesi gereken, gerisi zaten hep klasik şeyler, bağlantı aç, sorgu gönder, cevap al, aldığın cevabı bi yerlerde görüntüle vs.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Bakın yazdığım kodları "orada onu yazmış, burada bunu yazmış" şeklinde ezber değil de hangi SATIR nerede ne işe yarıyor şeklinde değerlendirirseniz çok daha faydalı olacaktır uyarlama konusunda.

Dediğim gibi Ekleyebiliyorsunuz, Silebiliyorsunuz, Güncelleyebiliyorsunuz, Kayıt çekebiliyorsunuz tek yapamadığınız şey arama yapmak kaldı.
Zaten onu da çözebileceğinize inanıyorum çok basit bir kaç detay var dikkat edilmesi gereken, gerisi zaten hep klasik şeyler, bağlantı aç, sorgu gönder, cevap al, aldığın cevabı bi yerlerde görüntüle vs.
Hocam mysql'e göre bağlantı yapıyorum ama ekteki hatayı alıyorum
 

Ekli dosyalar

  • mysql hata.JPG
    mysql hata.JPG
    103 KB · Gösterim: 6

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Activate kısmına bu şekilde yazıyorum ..


On Error Resume Next
Listele


Dim oconn As ADODB.Connection
Set oconn = New ADODB.Connection
oconn.Open "DRIVER={MYSQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=ambar;USER=root;PASSWORD=;"
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Command nesnesine Connection nesnesini yanlış tanımlıyorsun. cmd.ActiveConnection = con değil cmd.ActiveConnection = oconn olacak
 

Ekli dosyalar

  • Adsız.jpg
    Adsız.jpg
    128.1 KB · Gösterim: 6

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
"İstenen işlem ,geçerli sağlayıcının desteklemediği bir OLE DB Oturum nesnesi gerektiriyor" Hatası aldım
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Resimdeki boyalı yerin üstüne alttakini ekleyin sonuç 1 ise bağlantı kurulu demektir.

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

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Command nesnesine Connection nesnesini yanlış tanımlıyorsun. cmd.ActiveConnection = con değil cmd.ActiveConnection = oconn olacak
Bu kısmı dediğiniz gibi yaptıktan sonra bu hatayı aldım "Bağlantı bu işlemi gerçekleştirmek için kullanılamıyor.Kapalı veya bu koşullarda geçersiz "


Set rs = cmd.Execute satırında aldım

Bir önceki hatayı atlattırdım tekrar çıkarsa söyleyeceğim
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Bu kısmı dediğiniz gibi yaptıktan sonra bu hatayı aldım "Bağlantı bu işlemi gerçekleştirmek için kullanılamıyor.Kapalı veya bu koşullarda geçersiz "


Set rs = cmd.Execute satırında aldım

Bir önceki hatayı atlattırdım tekrar çıkarsa söyleyeceğim
üstad Refaz Bey'in dediğini bir dener misiniz? oconn.open "bağlantı dizesi" satırından sonra msgbox oconn.state satırı ekleyip bakar mısınız.
Mesaj kutusunda 1 yazıyorsa problem yok. 0 yazıyorsa bağlantı açılmamış demektir. Bağlantı dizenizde hata vardır o zaman.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
üstad Refaz Bey'in dediğini bir dener misiniz? oconn.open "bağlantı dizesi" satırından sonra msgbox oconn.state satırı ekleyip bakar mısınız.
Mesaj kutusunda 1 yazıyorsa problem yok. 0 yazıyorsa bağlantı açılmamış demektir. Bağlantı dizenizde hata vardır o zaman.
Hocam 0 yazıyor Üstad Refaz'ın da dediği gibi .
oconn.Open "DRIVER={MYSQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=ambar;USER=root;PASSWORD=;"

Activate kısmına bu şekilde bağlantıyı yazıyorum..
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Hocam oldu bağlantı sağladım 1 mesajını aldım verileri çekmeye çalışacağım şimdi..
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan

aeGNoR

Hocam mesaj 1 olarak geldi bağlantı sağladım fakat veriler gelmedi ben listview'e göre yapıyorum ondan olabilirmi sizin örnekte listbox vardı.​

 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Hocam Userform1 formuna tekrar hazırladım.Verileri Listview doldur prosedürü ile getiriyorum fakat filtreleme yapınca "Niteliklerin sayısı, sağlanan nitelik değerlerinin sayısından daha fazla" hatasını alıyorum .
 

Ekli dosyalar

  • Örnek.xlsm
    91.7 KB · Gösterim: 5

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Hocam Userform1 formuna tekrar hazırladım.Verileri Listview doldur prosedürü ile getiriyorum fakat filtreleme yapınca "Niteliklerin sayısı, sağlanan nitelik değerlerinin sayısından daha fazla" hatasını alıyorum .
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Bu sorgunun karşılığı serverda nedir yazabilir misiniz?
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Burada sunucuya 3 tane parametre gönderiyoruz cmd adındaki command nesnesi ile.

Buna karşılık
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
ile sorguladığınız "stokzimmetlist1" sorgusu içinde bunlara karşılık @ ile başlayan değişkenler olmalı.

Örnek verecek olursak "SELECT * FROM stokzimmetlist1" ile çektiğiniz sorgunun sunucudaki karşılığı aşağıdakine benzer bişey olmalı
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Ek Açıklama:

stokzimmetlist1 sorgunuzun içeriğinde @ ile başlayan değişkenlere karşılık aynı sayıda cmd nesnesi ile parametre göndermelisiniz. Yani sorgunuzda yukarıdaki @Stok_Kodu, @Fiş_Numarası, @Ürün_Adı değişkenlerinin hepsi bulunmak zorunda. Ya da bu 3 değişkenden daha fazla değişken sorgunuzda varsa cmd ile o kadar parametre göndermelisiniz.

Parametre sayıları ve tipleri aynı olmazsa hata alırsınız. Buradaki parametre sayılarının aynı olmasına istisna olarak sorguda bir parametre birden fazla kullanılmışsa örnek "WHERE (Adi Like [@Adi] OR [@Adi] IS NULL)" buarada @Adi değişkeni sorguda iki defa geçmesine rağmen parametre olarak 1 defa gönderilmelidir.
 
Son düzenleme:
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst