AccessTr.neT

Tam Versiyon: Acces Formda If Kullanımı
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Hayırlı günler.
Stok nu: 1452 ve SERİ 110 yazıp gönderi tarihini "10.10.2023" yazığımda Garanti metin kutusuna  "GARANTİ DEVAM EDİYOR" yazıyor. "10,10.2024" yazdığımda  Garanti metin kutusuna  "GARANTİ BİTTİ" yazıyor. 
Farklı bir stok veya seri numarası girip kayıt bulunamadığı zaman  Garanti metin kutusuna   "DAHA ÖNCE GELMEDİ" yazsın. Bunu yapamıyorum.
Kod:
Private Sub Komut_sorgula_Click()
Me.F_GARANTİKONTROL.Requery

'Formdaki stok ve seri numaralarını Faranti formu ile karşılaştırsın aynısı var ise
'Faranti formdaki garanti bitiş tarihi formdaki gönderi tarihinden küçükse
'  "GARANTİ BİTTİ" yazsın =>> sıkıntısız çalışıyor.
If Me.F_GARANTİKONTROL.Form.RecordsetClone.RecordCount > 0 And [F_GARANTİKONTROL].[Form]![GarantiBitişi] < Me.E8 Then
Me.Garanti = "GARANTİ BİTTİ"

'Formdaki stok ve seri numaralarını Faranti formu ile karşılaştırsın aynısı var ise
'Faranti formdaki garanti bitiş tarihi formdaki gönderi tarihinden büyükse
'  "GARANTİ DEVAM EDİYOR" yazsın =>> sıkıntısız çalışıyor.
ElseIf Me.F_GARANTİKONTROL.Form.RecordsetClone.RecordCount > 0 And [F_GARANTİKONTROL].[Form]![GarantiBitişi] > Me.E8 Then
Me.Garanti = "GARANTİ DEVAM EDİYOR"
Else
End If

'Formdaki stok ve seri numaralarını Faranti formu ile karşılaştırsın aynısı yok ise
'  "DAHA ÖNCE GELMEDİ" yazsın =>> çalışmıyor.

If Me.F_GARANTİKONTROL.Form.RecordsetClone.RecordCount < 0 Then
Me.Garanti = "DAHA ÖNCE GELMEDİ"

End If
End Sub
 bu kodda eksik olanı bulamadım bana yardımcı olurmusunuz.
Kodunuzu
If Me.F_GARANTİKONTROL.Form.RecordsetClone.RecordCount = 0 Then
Me.Garanti = "DAHA ÖNCE GELMEDİ"
End If
şeklinde düzelterek deneyin. RecordCount 0 ve >0 değerler üretir <0 değer almaz.
(05/05/2024, 23:48)atoykan yazdı: [ -> ]Kodunuzu
If Me.F_GARANTİKONTROL.Form.RecordsetClone.RecordCount = 0 Then
    Me.Garanti = "DAHA ÖNCE GELMEDİ"
End If
şeklinde düzelterek deneyin. RecordCount 0 ve >0 değerler üretir <0 değer almaz.

Hocam dediğiniz şekilde yaptım.
Run-time error '2427':
Değeri olmayan bir ifade girdiniz. 
yazıyor. 
 Bu işi çözmenin başka bir yolu yokmu açaba.
Hata aldığınız nokta kodun bu bölümü mü? Hayır. Nerede hata alıyorsunuz? Daha kodun en başında RecordsetClone.RecordCount > 0 & GarantiBitiş < E8 kısmındayken hata alıyorsunuz. Runtime Error 2427 nedir? Bir form, rapor ya da denetimi referans olarak kullandığınız ve bu referansın olmadığı veya henüz yüklenmediği durumda aldığınız hatadır. F_GARANTİKONTROL formunuz var mı? Var, formda E8 denetimi var mı? O da var? Peki nasıl alıyorsunuz bu hatayı F_GARANTİKONTROL formunuzun kayıt kaynağı sorgunuzda E3'e girdiğiniz değer bir karşılığı var ise sonuç döndürüyor ve bu değerleri denetim kaynağı olarak kontrollere yüklüyor, peki boş sonuç döndürdüğünde ne oluyor? Denetim kaynağı olmayan kontroller yüklenmiyor ve neticede runtime error 2427 karşımıza çıkıyor.

Demek ki sorun neymiş? Altformumuzun mantığında bir hata varmış. Algoritmamızı planlarken ne olursa ne olacağı planlamış ancak en önemli saç ayağından birini unutmuş birini hiç plana katmamışız. Nedir bu saç ayağında unuttuğumuz kısım peki ne olursa ne olacak belli, olmazsa ne olacak belli mi? Hayır. Hiç plana katmadığımız saç ayağı ne? Hata denetim kodları; var mı bir denetimimiz? Hayır. Bu anlattıklarım çerçevesinde değerlendirin çözeceğinize eminim. Yapamazsanız geliştirmeye çalıştığınız çözüm üzerinden değerlendirmeye devam ederiz.
(06/05/2024, 09:17)atoykan yazdı: [ -> ]Hata aldığınız nokta kodun bu bölümü mü? Hayır. Nerede hata alıyorsunuz? Daha kodun en başında RecordsetClone.RecordCount > 0 & GarantiBitiş < E8 kısmındayken hata alıyorsunuz. Runtime Error 2427 nedir? Bir form, rapor ya da denetimi referans olarak kullandığınız ve bu referansın olmadığı veya henüz yüklenmediği durumda aldığınız hatadır. F_GARANTİKONTROL formunuz var mı? Var, formda E8 denetimi var mı? O da var? Peki nasıl alıyorsunuz bu hatayı F_GARANTİKONTROL formunuzun kayıt kaynağı sorgunuzda E3'e girdiğiniz değer bir karşılığı var ise sonuç döndürüyor ve bu değerleri denetim kaynağı olarak kontrollere yüklüyor, peki boş sonuç döndürdüğünde ne oluyor? Denetim kaynağı olmayan kontroller yüklenmiyor ve neticede runtime error 2427 karşımıza çıkıyor.

Demek ki sorun neymiş? Altformumuzun mantığında bir hata varmış. Algoritmamızı planlarken ne olursa ne olacağı planlamış ancak en önemli saç ayağından birini unutmuş birini hiç plana katmamışız. Nedir bu saç ayağında unuttuğumuz kısım peki ne olursa ne olacak belli, olmazsa ne olacak belli mi? Hayır. Hiç plana katmadığımız saç ayağı ne? Hata denetim kodları; var mı bir denetimimiz? Hayır. Bu anlattıklarım çerçevesinde değerlendirin çözeceğinize eminim. Yapamazsanız geliştirmeye çalıştığınız çözüm üzerinden değerlendirmeye devam ederiz.

Hocam balık vermiyorsunuz balık tutmayı öğretiyorsunuz. Allah razı olsun. Şimdi her durumda sıkıntısız calisiyor
Burada amaç balık vermek değil, tutmayı öğretmek zaten.
Kolay gelsin, iyi çalışmalar.