• DİKKAT

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

sql like kullanımında sıkıntı

Katılım
8 Ekim 2010
Mesajlar
12
Excel Vers. ve Dili
microsoft 2007
Merhaba arkadaşlar, şuan üzerinde uğraştığım personel takip prğramında aramada bir sıkıntı yaşıyorum, daha doğrusu listelemede. listboxtan aldığım bilgileri süzmem gerekiyor yardımcı olursanız sevinirim.

YAPMAK İSTEDİĞİM ŞEY

Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call baglanti
rs.Open "select * from [PERSONEL] WHERE [PERSONEL].ADI LIKE '%" & TextBox1.Text & "%'", baglan, 1, 1

GÖRÜLDÜĞÜ ÜZERE TEXTTEKİ PERSONEL İSMİNİ AYNI ZAMANDA DOGUMTARIHI BOŞ OLAN ADAYLARDAN OLUŞMASINI İSTİYORUM.

AND VARYASYONLARI DENEDİM LAKİN BİR ÇÖZÜM BULANMADIM.
 
Merhaba,

Kod:
rs.Open "select * " & _
"from [PERSONEL] " & _
"WHERE [PERSONEL].ADI LIKE '%" & _
TextBox1.Text & "%' [COLOR=Blue][B]OR [PERSONEL].DOGUMTARIHI IS NULL[/B][/COLOR]", baglan, 1, 1
 
TEKRAR MERHABA ŞİMDİ RADİO BUTON YARDIMI İLE LISTBOX DAN ARAMA YAPMAKTAYIM. BEN BU ARAMADA BİRDEN FAZLA SEÇENEK YAPMAYA ÇAKLIŞIYORUM, YANİ BURADA PERSONEL ADINA GÖRE HASSAS ARAMA YAPARKEN AYNI ZAMANDA TARİH ALANI BOŞ OLMA ZORUNLULUĞU GETİRMEK İSTİYORUM YANİ PERSONELİ LİSTELESİN AMA TARİH ALABN ADINDA BİR KAYIT VARSA LİSTELEMESİN. YARDIMCI OLURSANIZ ÇOK SEVİNİRİM..

If OptionButton1.Value = True Then
ListBox1.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call baglanti
rs.Open "select * from [PERSONEL] WHERE [PERSONEL].ADI LIKE '%" & TextBox1.Text & "%'", baglan, 1, 1

With ListBox1
.RowSource = Empty
.ColumnCount = 14
.ColumnWidths = "0;26;150;30;90;60;60;60;60;60;0;0;0;0"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing


ÖRNEKTETE ANLAŞILDIĞI ÜZERE ÇALIŞMADA BİR SIKINTI YOK, SADECE BİR KOŞUL DAHA EKLEMEYE ÇALIŞIYIORUM AMA AND OR OLAYLARINI BİR TÜRLÜ YEMEDİ,
 
Merhaba,

Kod:
rs.Open "select * " & _
"from [PERSONEL] " & _
"WHERE [PERSONEL].ADI LIKE '%" & _
TextBox1.Text & "%' [COLOR=blue][B]OR [PERSONEL].DOGUMTARIHI IS NULL[/B][/COLOR]", baglan, 1, 1

Merhaba,

Zeki Bey'in yanıtı hiç bir bir yorum yapmadınız, neden?
 
Kod hata verdi, aramada hiç seçenek göstermemeye başladı. Sağolsun zeki beyin gönderdigi örneği başka şekillerde de denedim ama malesef olmadı. bende belki yanlış anlaşılmışımdır die tekrar düzelterek yazdım. birde or değilde and takısıyla olmalı die düşünüyorum, zira bulunacak sonuçta iki şartıda sağlaması gerekiyor. tarih boş olanların içinden personel adına göre arama yapmak istiyorum.
 
Merhaba,

Evet iki şartı da istiyorsanız Or yerine And olmalı. Ancak Zeki bey sizin tablonuzu bilmediği için örnek olarak [PERSONEL].DOGUMTARIHI alanını kullanmış, siz bu alanı kullandıysanız ve böyle bir alan yoksa doğal olarak hata alırsınız.
 
Merhaba,

Sorunuzda koşul kısmını yanlış anlamış olmalıyım. Soruya verilen cevabı yok sayıp başlığı tazelemek soruya cevap veren hiç kimse için hoş algılanmaz.

Necdet beyin 6. mesajındaki kontrolü yaparsanız sorunuzun çözüleceğini tahmin ediyorum.
 
Aramanın Tümü Aşağıda Görüldüğü Gibidir

Private Sub TextBox1_Change()
On Error GoTo hata

If OptionButton1.Value = True Then
ListBox1.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call baglanti
rs.Open "select * " & _
"from [PERSONEL] " & _
"WHERE [PERSONEL].ADI LIKE '%" & _
TextBox1.Text & "%' AND [PERSONEL].DTARIHI IS NULL", baglan, 1, 1

With ListBox1
.RowSource = Empty
.ColumnCount = 14
.ColumnWidths = "0;26;150;30;90;60;60;60;60;60;0;0;0;0"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing

Else
ListBox1.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call baglanti
rs.Open "select * from [PERSONEL] WHERE [PERSONEL].DEPARTMAN LIKE '" & TextBox1.Text & "%'", baglan, 1, 1
With ListBox1
.RowSource = Empty
.ColumnCount = 14
.ColumnWidths = "0;26;150;30;90;60;60;60;60;60;0;0;0;0"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing
End If


hata:
If Err = 3021 Then
Exit Sub

End If


End Sub



Zeki beyin gönderdiği kodu uyarladığımda hiç arama yapmıyor, aslına bakarsanız şuan kod doğru görünüyor. İşin içine and girdiğinde direk texte ne yazarsam hiç bir şey bulmuyor ve bir nevi sistem kapatıyor gibi. Ama or kullandığımda bu seferde hiç bir işlem yapmıyor. Söylediğiniz gibi alan adı dyarih ki bunuda değiştiriyorum diğer alan adlarınıda deniyorum. Kodda görüldüğü üzere ikinci ayrı bir aramada departmana göre listeliyorum. burda departmanı da kullansam iki koşul olduğunda arama çalışmıyor. Bunu farklı bir şekilde yapabilirmiyim acaba? If yada Case ile
 
Dosyayı buraya eklemeye çalışıyorum ama hata veriyor, isterseniz mail adresinize göndereyim adresi yazın
 
Merhaba

Dosyanız sıkıştırarak ekleyiniz.
 
Merhaba

Zeki Beyin kodları doğru Siz boş dediğiniz için NULL kullanılmış.
Veritabanınızda tarih NULL değeri almışmı. Almamışsa

Is null yerine ..... AND [PERSONEL].DOGUMTARIHI='' olarak kullanın
sonucu bize bildirebilirmisiniz.
 
Şuan iş yerinde kısıtlı kullanıcı olduğum için sıkıştırma proğramlarını kullanamıyorum, akşam sıkıştırılmıs olarak proğramı ekleyim ozaman. Ya da özel den bir mail adresi verirseniz de gönderebilirim. Gerçekten çok teşekkür ediyorum, bu proğramla 4 haftadır uğraşıyorum. Ve bu sorun olmazsa olmaz bir öneme sahip. Tekrardan kolay gelsin iyi çalışmalar.
 
Merhaba

12. mesaja baktınızmı
 
Geri
Üst