Access Isnull Hatası

1 2 3 4 5 6
12/01/2020, 18:56

feraz

sayyın @berduş maliesef olmadı son kodunuz.
12/01/2020, 19:17

feraz

(12/01/2020, 15:52)ozanakkaya yazdı: inceleyiniz, forma 2 adet metin kutusu ekledim. txtSoyadAra ve txtAdAra metin kutularının değiştiğinde olayına kod eklendi, 

Sub Ara kodunda düzenleme yapıldı.

Denedim ve sonuç olumlu.

Şöyle deneyeceğim 2 adet eklediğiniz textboxu silip 2 adet değişken ekleyeyim en üst kod satırında Global olarak bakalım nasıl olacak.inşallah olur böyle çünkü fazladan textbox eklemek istemiyorum abey.
12/01/2020, 19:39

feraz

(12/01/2020, 19:17)feraz yazdı:
(12/01/2020, 15:52)ozanakkaya yazdı: inceleyiniz, forma 2 adet metin kutusu ekledim. txtSoyadAra ve txtAdAra metin kutularının değiştiğinde olayına kod eklendi, 

Sub Ara kodunda düzenleme yapıldı.

Denedim ve sonuç olumlu.

Şöyle deneyeceğim 2 adet eklediğiniz textboxu silip 2 adet değişken ekleyeyim en üst kod satırında Global olarak bakalım nasıl olacak.inşallah olur böyle çünkü fazladan textbox eklemek istemiyorum abey.

Sayın @ozanakkaya 2 adet eklediğiniz textboxları sildim ve global adlanda değşken ekleyip denedim ve sorun çözüldü.Bir tane daha Yas adında textbox ekledim ve sorunsuz çalıştı 3 adet arama textboxu için.Teşekkürler.

Sizede teşekkürler @berduş

Eklediğim kod;

Dim txtAdAra_gecici, txtSoyadAra_gecici, txtYasAra_gecici

Değişen kodlar;

    If Not IsNull(txtAdAra_gecici) Then strSQL = strSQL & " and Ad like '%" & txtAdAra_gecici & "%'"
    If Not IsNull(txtSoyadAra_gecici) Then strSQL = strSQL & " and Soyad like '%" & txtSoyadAra_gecici & "%'"
    If Not IsNull(txtYasAra_gecici) Then strSQL = strSQL & " and Yas like '%" & txtYasAra_gecici & "%'"



Option Compare Database

Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim strSQL As String
Dim txtAdAra_gecici, txtSoyadAra_gecici, txtYasAra_gecici

Sub Ara()

'On Error Resume Next
    With cn
        If .State = adStateOpen Then
            .Close
            Set cn = Nothing
        End If
    End With

    Set cn = CurrentProject.Connection

     strSQL = "Select id,FORMAT(Tarih, 'dd.mm.yyyy') as Tarih,Ad,Soyad,Yas,format(Telefon,'(###) ### ## ##')as Telefon From Tablo1 where Not IsNull(id)"
    
     If Not IsNull(txtAdAra_gecici) Then strSQL = strSQL & " and Ad like '%" & txtAdAra_gecici & "%'"
     If Not IsNull(txtSoyadAra_gecici) Then strSQL = strSQL & " and Soyad like '%" & txtSoyadAra_gecici & "%'"
     If Not IsNull(txtYasAra_gecici) Then strSQL = strSQL & " and Yas like '%" & txtYasAra_gecici & "%'"


    With rs
        If .State = adStateOpen Then .Close
        .CursorType = adOpenDynamic
        .CursorLocation = 3
        .LockType = adLockOptimistic
        .Open strSQL, cn, , , 1
    End With

    Lstbox.ColumnCount = 6
    Lstbox.ColumnWidths = "2Cm;2Cm;3Cm;3Cm;3Cm;3Cm"
    Lstbox.ColumnHeads = True

    Set Lstbox.Recordset = rs
  
End Sub

Private Sub txtAdAra_Change()
    txtAdAra_gecici = Me.txtAdAra.Text
    Call Ara
End Sub

Private Sub txtSoyadAra_Change()
    txtSoyadAra_gecici = Me.txtSoyadAra.Text
    Call Ara
End Sub

Private Sub txtYasArama_Change()
    txtYasAra_gecici = Me.txtYasArama.Text
    Call Ara
End Sub
12/01/2020, 19:56

berduş

Güzel yöntem)
Şöyle birseyi de dendeneyebilir misiniz? bilgisayar erişimim olmadığından deneyemedim
Ilk mesajdaki çalışmanız için ara fonksiyonunun en başına aşağıdaki kodu ekler misiniz
Screen.ActiveControl.value=Screen.ActiveControl.text
Screen.ActiveControl.SelStart=len(Screen.ActiveControl.value)
Geriye kalan tüm kodlar ilk mesajınızdaki gibi kalacak
12/01/2020, 20:21

feraz

(12/01/2020, 19:56)berduş yazdı: Güzel yöntem)
Şöyle birseyi de dendeneyebilir misiniz?  bilgisayar erişimim olmadığından deneyemedim
Ilk mesajdaki çalışmanız için ara fonksiyonunun en başına aşağıdaki kodu ekler misiniz
Screen.ActiveControl.value=Screen.ActiveControl.text
Screen.ActiveControl.SelStart=len(Screen.ActiveControl.value)
Geriye kalan tüm kodlar ilk mesajınızdaki gibi kalacak

Böyle çok süper oldu
Kodların açıklamasını yazabilir misiniz?

SelStart ne olduğunu biliyorum fakat burdaki kullanma amacını anlayamadım.
Screen bunuda anlayamadım acaba exceldeki application.screenupdate gibi birşey mi?
12/01/2020, 20:32

berduş

Screen.ActiveControl odaklanilmis aktif nesneyi gosterir, aktif nesnenin değerini metin değerine eşler böylece value değeri text değerine eşit olur
screen komutunun anlamini ben de tam olarak bilmiyorum ama sanki ekranda görünen nesneler için kullanılıyor gibi geldi biraz zorlama bir yorum
Alttaki kodu önlem olarak eklemiştim belki o kod olmadan bile çalışır: imleci  aktif nesnenin belirtilen konumuna taşır biz tüm metni aldığımızdan en sona aldı
Not: ilk kodu kullanırken dikkatli olmalısınız metin kutusu herhangi bir tablo alanıyla ilişkili olmadığından burada sorun çıkarmayabilir ama başka bir alanla iliskiliyse yada ctrl+z de sorun cikarir
1 2 3 4 5 6