Parametre değerini kontrol etmek

1 2 3
08/05/2010, 22:19

febas

Merhabalar

Aşağıdaki Sql i modül olarak oluşturdum ve makro üzerinden çalıştırıyorum, çalıştırdığımda Firma_Adını_Giriniz parametresi çıkıyor herhangi bir değer girdiğimde çalışıyor. sormak istediğim

1. ifadeyi nasıl kontrol altına alabilirim örn eğer değer boşsa veya tabloda yoksa uyarı versin
2. parametreyi iptal et dediğimde error veriyor ve eylem başarısız ekranını açıyor bunu nasıl engelliyebilirim ?

yardımlarınız için şimdiden çok teşekkür ederim.


"SELECT kmtportfoy.firma, tblyetkili.yetkili, tblyetkili.irttel, tblyetkili.mail, tblyetkili.nprd INTO rapor FROM kmtportfoy INNER JOIN tblyetkili ON kmtportfoy.kimlik = tblyetkili.baglanti where firma= ( Firma_Adını_Giriniz)"
08/05/2010, 22:34

ercansahin

Sn febas, lütfen örneğinizi Site Kurallarına uygun hale getiriniz. Aksi halde cevap alamayacaksınız..Bilginize
08/05/2010, 22:38

febas

özen gösteriyorumkurallara ama bazen gözden kaçabiliyor
08/05/2010, 22:43

ercansahin

Şimdi oldu.. Ancak yeniden eklemektense öncekini kaldırıp yerine eklemeniz daha uygun olurdu.

Sorunuzun cevabına gelince; gördüğüm kadarıyla yazdığınız Sql sonunda belirttiğiniz firma= ( Firma_Adını_Giriniz) bölümünde yer alan Firma_Adını_Giriniz parametre değeri olarak karşınıza çıkmakta.. Çünkü buraya yazdığınız alanın bir form vb. yerde varolması ve bilginin buradan alınması gerekmetedir. Örneğin siz bu parametre sorulduğunda x yazarak tamam tıkladığınızda normal olarak çalıştığını ve x firmasına ait bilgilerin Excele aktarıldığını göreceksiniz. Haliyle bu soruya iptal dediğinizde Sql tamamlanamamakta ve hata mesajı vermektedir.
08/05/2010, 22:48

febas

birdahakine böyle bir sorun olmasın ama alursa belirttiğiniz şekilde yaparım
evet tablo üzerinden kontrol sağlanıyor benimde kontrol altına almak istediğim bu kısım bu cümle içerisnde if deyimini kullanarak boş veya tablodaki veriye eşit değilse kayıt bulunmadı uyarısını verdirmek
ve parametre değerinde iptal tıklanırsa hataya düşmeden fonksiyondan çıkmak bunu nasıl yapabilirim ?
08/05/2010, 23:03

ercansahin

Sn febas, sanırım ben tam olarak anlatamadım..Siz örneğin KMT formunuzdaki frm alanını ölçüt olarak Sql in sonuna yazmalısınız. Aksi halde her seferinde size parametre soracaktır. KMT formunuzu açarak ekleyeceğiniz bir düğme ile Makro'yu tetikleyin. Ancak öncesinde;

Kod:
DoCmd.RunSQL "SELECT kmtportfoy.ncst, kmtportfoy.frmadrres, kmtportfoy.frmirt, tblyetkili.yetkili, tblyetkili.irttel, tblyetkili.mail, tblyetkili.nprd INTO a FROM kmtportfoy INNER JOIN tblyetkili ON kmtportfoy.kimlik = tblyetkili.baglanti where (firma= forms!KMT!frm)"

SQL i bununla değiştirip terkar deneyin. Parametre sormayacağı için cevaplamanız gereken bir durumda olmayacak, böylelikle hata mesajı ile de karşılaşmayacaksınız..
Daha doğrusu kodlarınızı aşağıdaki ile değiştirir ve KMT formunuza ekleyeceğiniz bir düğme ile çalıştırırsanız. Boş olması halinde istediğiniz mesajı da alabilirsiniz.
Kod:
Public Function ytk()
Dim nesne, nesne1 As Object
DoCmd.SetWarnings False
If IsNull(Forms!kmt!frm) Then
Call MsgBox("Lütfen Firma alanının dolu olduğundan emin olunuz.", vbExclamation, "Dikkat")
Else
DoCmd.RunSQL "SELECT kmtportfoy.ncst, kmtportfoy.frmadrres, kmtportfoy.frmirt, tblyetkili.yetkili, tblyetkili.irttel, tblyetkili.mail, tblyetkili.nprd INTO a FROM kmtportfoy INNER JOIN tblyetkili ON kmtportfoy.kimlik = tblyetkili.baglanti where (firma= forms!KMT!frm)"

DoCmd.TransferSpreadsheet acExport, 8, "a", CurrentProject.Path & "\nprd.xls", False
Set nesne = CreateObject("Excel.Application")
Set nesne1 = nesne.Workbooks.Open(CurrentProject.Path & "\nprd.xls")
nesne.Application.Visible = True
End If
End Function
1 2 3