Skip to main content

AccessTr.neT


ifade yanlış yazılmış veya çalıştırmak için çok karmaşık mesajı

ifade yanlış yazılmış veya çalıştırmak için çok karmaşık mesajı

Çözüldü #1
iyi günler arkadaşlar
eklentideki eğitim programında süz formunda listelerden tümü seçili iken yazdır butonu çalışıyor
fakat
üç listeden herhangi birisi tümü seçili değilse resimdeki uyarıyı veriyor
"ifade yanlış yazılmış veya çalıştırmak için çok karmaşık......."
arkadaşların eklediklerine biraz da biz birşeyler ekleyince accessin kafası karıştı.
ama sizler gibi Access canavarı arkadaşları tanıyınca accessde yapılacakların ancak hayal gücü ile sınırlı olduğunu anladım
yardımcı olacak arkadaşlara çok teşekkürler
.rar egitim.rar (Dosya Boyutu: 1,46 MB | İndirme Sayısı: 24)
Cevapla
Çözüldü #2
Verdiğiniz gazı aldık Img-grin
Artık bu gazdan sonra bakmasak olmaz Biggrin
Allahtan kodunuz karışık değilmiş Biggrin

Verdiği hata şu; Sayısal bir alana, metin olarak kriter koyamazsınız.
[birim.birimkod], [ünvan.ünkod], [konu.konukod] adındaki sayı alanlarını metin bir alanla kontrol ettirmişsiniz, aslında
[birim.birim], [ünvan.ünvan], [konu.konu] alanlarını kontrol etmelisiniz.

Bunun için Yazdır komutundaki ilgili kodları aşağıdaki şekilde değiştirin.
Kod:
If Not flgSelectAll Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([birim.birim] in (" & Left(strIN, Len(strIN) - 1) & ")) "
    If Not flgSelectAllx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([ünvan.ünvan] in (" & Left(strINx, Len(strINx) - 1) & "))) "
    If Not flgSelectAllxx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([konu.konu] in (" & Left(strINxx, Len(strINxx) - 1) & "))) "
    
    If Not flgSelectAll And Not flgSelectAllx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([birim.birim] in (" & Left(strIN, Len(strIN) - 1) & ")) and ([ünvan.ünvan] in (" & Left(strINx, Len(strINx) - 1) & "))) "
    If Not flgSelectAll And Not flgSelectAllxx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([birim.birim] in (" & Left(strIN, Len(strIN) - 1) & ")) and ([konu.konu] in (" & Left(strINxx, Len(strINxx) - 1) & "))) "
    If Not flgSelectAllx And Not flgSelectAllxx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([ünvan.ünvan] in (" & Left(strINx, Len(strINx) - 1) & ")) and ([konu.konu] in (" & Left(strINxx, Len(strINxx) - 1) & "))) "
    
    If Not flgSelectAll And Not flgSelectAllx And Not flgSelectAllxx Then strWhere = " WHERE (((toplantı.tarih)>=[Forms]![suz]![tarih1] And (toplantı.tarih)<=[Forms]![suz]![tarih2])) and ([birim.birim] in (" & Left(strIN, Len(strIN) - 1) & ")) and ([ünvan.ünvan] in (" & Left(strINx, Len(strINx) - 1) & ")) and ([konu.konu] in (" & Left(strINxx, Len(strINxx) - 1) & ")))"

Veya 2. yöntem olarak üstteki kodlara hiç dokunmadan, şu şekilde yapabilirsiniz.
Burada Listbox'larda görünen isimleri değil, id alanlarını In kriterine ekliyor,
böylece sayı alanlarını ait olduğu sayı alanlarıyla kontrol etmiş oluyorsunuz.
Bence bu yöntem daha iyidir.
Kod:
'-----------------------------------------------
    'Build the IN string by looping through the listbox
    For I = 0 To birliste.ListCount - 1
        If birliste.Selected(I) Then
            If birliste.Column(1, I) = "<TÜMÜ>" Then
                flgSelectAll = True
            End If
            strIN = strIN & birliste.Column(0, I) & ","
        End If
     Next I
'--------------------------------------------------------
'Build the IN string by looping through the listbox
    For I = 0 To ünliste.ListCount - 1
        If ünliste.Selected(I) Then
            If ünliste.Column(1, I) = "<TÜMÜ>" Then
                flgSelectAllx = True
            End If
            strINx = strINx & ünliste.Column(0, I) & ","
        End If
     Next I
'--------------------------------------------------------
    'Build the IN string by looping through the listbox
    For I = 0 To Liste2.ListCount - 1
        If Liste2.Selected(I) Then
            If Liste2.Column(1, I) = "<TÜMÜ>" Then
                flgSelectAllxx = True
            End If
            strINxx = strINxx & Liste2.Column(0, I) & ","
        End If
     Next I
'-----------------------------------------------------------

Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #3
teşekkürler kardeşim
problem çözülmüştür
ellerinize sağlık
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task