• DİKKAT !

    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 Dosya Yükleme tamamen ücretsizdir.

Çözüldü Sql ile Verileri Filtreleme

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.

Local

Yeni Üye
Katılım
19 Ağu 2023
Mesajlar
304
Çözümler
5
Aldığı beğeni
25
Excel V
Office 2016 TR
Konu Sahibi
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 ?
 
Ö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?
 
Bir Örnek hazırladım. Kontrol eder misiniz?
 
Çözüm
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.
 
Konu Sahibi
İnceledim hocam çalışıyor programıma uygun bir arama seçeneği bende sizin daha önceki bir örneğinizi uyarlamaya çalışıyordum ..
 
İ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 satır 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.
 
Konu Sahibi
Bakın yazdığım kodları "orada onu yazmış, burada bunu yazmış" şeklinde ezber değil de hangi satır 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
 
Konu Sahibi
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=;"
 
Command nesnesine Connection nesnesini yanlış tanımlıyorsun. cmd.ActiveConnection = con değil cmd.ActiveConnection = oconn olacak
 
Konu Sahibi
"İstenen işlem ,geçerli sağlayıcının desteklemediği bir OLE DB Oturum nesnesi gerektiriyor" Hatası aldım
 
Resimdeki boyalı yerin üstüne alttakini ekleyin sonuç 1 ise bağlantı kurulu demektir.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
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
 
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.
 
Konu Sahibi
ü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..
 
Konu Sahibi
Hocam oldu bağlantı sağladım 1 mesajını aldım verileri çekmeye çalışacağım şimdi..
 
Konu Sahibi

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ı.​

 
Konu Sahibi
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 .
 
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 .
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Bu sorgunun karşılığı serverda nedir yazabilir misiniz?
 
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Burada sunucuya 3 tane parametre gönderiyoruz cmd adındaki command nesnesi ile.

Buna karşılık HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
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ı
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

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.
Geri
Üst