Skip to main content

AccessTr.neT


Veri Türü Uyuşmazlığı

Veri Türü Uyuşmazlığı

Çözüldü #1
Kod:
Private Sub cmdFiltre_Click()
On Error GoTo Err_cmdFiltre_Click
Dim TaliID As String
Dim TeklifVeren As Long

TaliID = Me.TaliIDSecim
TeklifVeren = Me.TeklifVerenSecim

Me.Filter = "TaliID = '" & TaliID & "'" And "TeklifVeren =  " & TeklifVeren & ""
'Üst satırda veri türü uyuşmazlığı nerede? Acaba ayraçlarda mı bi hata yapıyorum. Ölçütler tek tek çalışıyor. Fakat ikisi birlikte veri türü uyuşmazlığına sebep oluyor.
Me.FilterOn = True

Exit_cmdFiltre_Click:
Exit Sub

Err_cmdFiltre_Click:
    MsgBox Err.Description
    Resume Exit_cmdFiltre_Click

End Sub

Açıklamalar kodun içinde. Yardımcı olabilirsenizi sevinirim.
Cevapla
Çözüldü #2
Tırnaklarda hata gördüm.
Aşağıdaki şekilde deneyin.
Kod:
Me.Filter = "TaliID = '" & TaliID & "' And TeklifVeren =  " & TeklifVeren

Bu tür durumlarda hem yazmayı hemde kontrol etmeyi kolaylaştırması için,
kriterleri ayrı ayrı değişkenlere ayarlamak kullanım kolaylığı sağlar.

Kod:
Dim Kriter1, Kriter2
Kriter1="TaliID = '" & TaliID & "'"
Kriter2="TeklifVeren = " & TeklifVeren
Me.Filter = Kriter1 & " And " & Kriter2


TeklifVeren değişkeni Long veri türüymüş, kodları düzelttim
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
Cevabınız için teşekkür ederim. Şimdi bende gördüm hatamı. Dediğiniz şekilde ayrı kriterlerle daha mantıklı olacak.

Kod:
Me.Filter = "TaliID = '" & TaliID & "' And TeklifVeren = " & TeklifVeren & ""

Peki şöyle bir durum var. Mesela buradaki kriterler daha fazla olacak. Böyle bir durumda kriterler için kullandığım denetimlerin bazıları boş kalabilir. Yani istediğim alanlara göre filtreleme yapacağım. Bu durumda formda kriter alanını boş bıraktığımda Null değeri olduğundan devam etmiyor. Bende onu şu şekilde yaptım.

Kod:
If Not IsNull(Me.TaliIDSecim) Then TaliID = Me.TaliIDSecim
If Not IsNull(Me.TeklifVerenSecim) Then TeklifVeren = Me.TeklifVerenSecim

Fakat alanlar null ise bu sefer o alanlardaki bütün kayıtların gelmesini istiyorum.
Mesela TaliID alanına göre filtre uygulayıp Teklif veren alanınıpas geçebilirim. Veya bunun tersi TeklifVeren alanına göre filtreleyip TaliID alanını pas geçebilirim. Veya her ikisine göre filtre yapabilirim. Sanırım filtre yapmayacağım alanlar için Like kullanacağım ama yapamadım. Biraz uzun oldu sanırım anlatmak istediğim Img-grin
Son Düzenleme: 12/11/2009, 10:41, Düzenleyen: siberonik.
Cevapla
Çözüldü #4
bu kodu dener misin?
dim filter as string
if me.TaliID<>"" then
filter="TaliID = '" & me.TaliID & "'"
end if
if me.TeklifVeren <>"" then
if filter<>"" then
filter=filter & "And TeklifVeren = " & me.TeklifVeren
else
filter="TeklifVeren = " & me.TeklifVeren
end if
end if

me.filter=filter
İyiki Varsın Access Img-grin
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da