Skip to main content

AccessTr.neT


Tabloda Kayıt Yoksa Formu Açma

Tabloda Kayıt Yoksa Formu Açma

#1
Merhaba Arkadaşlar,

günü gelen işleri otomatik mail atan bir uygulama bitmek üzere.
kodlarla arası olmayanlar için ufak ilaveler yapıyorum.

formumuz gmail hesabınızdan mail atıyor. bir tabloda şifre ve kullanıcı adı tutuluyor. 
bilgileri doğru girdiğimizde düzgün çalışıyor. 

benim istediğim burada kullanıcı adı veya şifre yok ise. 
ana form [HATIRLATMALAR] açılmıcak [MAILSIFRE] şifre giriş formu açılcak.



Kod:

Private Sub Form_Load()
If Dlookup ("[MAIL]", "MAILSIFRE") = Null And Dlookup ("[SIFRE]", "MAILSIFRE") = Null Then
DoCmd.OpenForm "MAILSIFRE"
Else
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide
End If
End Sub
.rar hatırlat4.2_sld_form.rar (Dosya Boyutu: 61,67 KB | İndirme Sayısı: 8)
barcins, 29-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
Sayın barcins,

Öncelikle,kendi adıma geçerli olmak sureti ile eklediğiniz örnek uygulama üst sürüm olması gerekçesi ile inceleme imkanım olmamaktadır fakat yazdıklarınızdan edindiğim hali ile fikir vermek üzere belirtmek gerekirse;

Yazdığınız haline göre,ilk açılışta mail şifresi ya da anaform adlı formların yerine sanırım başka bir form açılmakta.öyle ki,eğer kullanıcı adı ve şifre doğru değilse mail şifresi adlı formun açılmasını doğruysa da ana formun açılmasını istemişsiniz.dolayısı ile de o zaman başka bir form söz konusu olsa gerek.tabi bunu farazi yazıyorum.dediğim gibi inceleyemediğim için.

O zaman,açılan form hangisi ise bu formda geçerli olmak üzere yazdığınız koda göre bakıldığında şu yapılmış olduğu görülmekte. MAILSIFRE ifadesi eğer bir tablo adı ise tabloda MAIL ve SIFRE alanları eğer BOŞ ise diye yazılmış.eğer tabloda kayıt varsa (tabi bu tablo eğer önceden verileri girilmiş haldeyse geçerlidir) kayda göre davranacak fakat boş ise MAILSIFRE formunu açacak diye yazılı.

Tabloya göre değil de bunu açılan form hangisi ise o form üzerindeki kullanıcı adı ve şifre değerinin yazılacağı denetimlere göre kontrol ettirilmesi daha yerinde olacaktır.zira,eğer tabloda daha önceden girilmiş kayıt varsa buna göre işlem yapacaktır.

Bence burada şöyle bir kontrol yaptırılması uygun olur kanısındayım.Burada önemli olan neye göre kullanıcı adı ve şifre boş olursa işlem yapılması gerekiyor? Form açılır açılmaz boş kalma durumu derken kast edilen nedir?

Belki bir süre sonra bu bilgiler giriliyor da olabilir.ya da boş geçildiğinde eğer herhangi bir form açma işlevi söz konusu ise bunu engellemek için kullanıcı adı ve şifre giriş denetimleri eğer boş bırakılmışsa bir kontrol kodu dahile dilerek bu denetimlerin boş bırakılmaması konusunda ileti mesajı ekranda belirtilebilir ve eğer bilgiler doğru ise o zaman ana formun açılması sağlatılabilir.bu kullanıcı adı ve şifre girişinin yapılması gereken form zaten şifre giriş formu değil mi?

Kendi adıma,anlayamadığım kısım burası olduğu için bu yorumu yazmayı istedim,danışmak mahiyetinde.siz,anlatmış da olabilirsiniz fakat yanlış anlıyor ve yorumluyorsam lütfen gerekli bilgilendirmelerde bulununuz.Bilginize…iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#3
Kodları düz duvar yerine merdiven şeklinde kodlarsanız daha okunur olur ayrıca hatalarınız azalır. Formun Load yani Yüklendiğinde olayını aşağıdaki gibi yapabilirsiniz:


Dim eposta As String
Dim parola As String

parola = Nz(DLookup("SIFRE", "MAILSIFRE"), "")
eposta = Nz(DLookup("MAIL", "MAILSIFRE"), "")

If (eposta = "" Or IsNull(parola) Or parola = "" Or IsNull(parola)) Then
'If MsgBox("Mail Bilgileriniz Güncellensinmi" & vbLf & vbLf & "Bilgileriniz Eksik...") = vbYes Then
'MsgBox "Mail Bilgileriniz eksik.", vbOKOnly + vbInformation, "Bilgilendirme Penceresi"
DoCmd.OpenForm "MAILSIFRE"
Else
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide
End If
'End If


göründüğü gibi düz duvar stili okunaklı değil. Girinti kullanınca ise çok daha okunaklı olacaktır.


Dim eposta As String
Dim parola As String

   parola = Nz(DLookup("SIFRE", "MAILSIFRE"), "")
   eposta = Nz(DLookup("MAIL", "MAILSIFRE"), "")
   
   If (eposta = "" Or IsNull(parola) Or parola = "" Or IsNull(parola)) Then
       
       'If MsgBox("Mail Bilgileriniz Güncellensinmi" & vbLf & vbLf & "Bilgileriniz Eksik...") = vbYes Then
       'MsgBox "Mail Bilgileriniz eksik.", vbOKOnly + vbInformation, "Bilgilendirme Penceresi"
       DoCmd.OpenForm "MAILSIFRE"
   
   Else
       
       DoCmd.SelectObject acTable, , True
       DoCmd.RunCommand acCmdWindowHide
   
   End If


Access ile Null kontrolünü Eposta = Null şeklinde değilde IsNull( Eposta ) olarak kontrol etmeniz daha doğru olur.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#4
sayın alpeki99 teşekkür ederim.
komut çalışıyor fakat yerini ayarlıcam. kendiside açılıyor şu an 
yani hem [MAILSIFRE] ve [HATIRLATMALAR] açılıyor. [HATIRLATMALAR] açılmıcak. şimdi çıkıyorum geldiğimde bakıcam.

sorun çözülmüştür. iyi forumlar. 
barcins, 29-05-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 16/05/2017, 11:21, Düzenleyen: barcins. (Sebep: harf hatası)
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task