Znaci, treba da popunim neku formu na kojoj nije neophodno da budu popunjena sva polja. Samo su odredjena obavezna. Problem je u tome, sto ako korisnik slucajno preskoci tu formu i ostavi je praznu i nastavi dalje da radi meni pravi totalni kurslus u programu...
Kako da napravim da command button moze da se aktivira tek kada se popune sva trazena polja?
Zaključano
Zakačeno
Na događaj On Click command button-a uneseš za svako obavzno polje ograničenje tipa:
If IsNull(Me![TvojeObaveznoPolje]) Then
MsgBox "Morate uneti vrednost", vbCritical, "Pažnja"
Me![TvojeObaveznoPolje].SetFocus
End If
Tako se VBA kod koji sledi iza neće izvršavati dogod korisnik ne unese vrednost.
If IsNull(Me![TvojeObaveznoPolje]) Then
MsgBox "Morate uneti vrednost", vbCritical, "Pažnja"
Me![TvojeObaveznoPolje].SetFocus
End If
Tako se VBA kod koji sledi iza neće izvršavati dogod korisnik ne unese vrednost.
To bi trebalo da je to, ali taj code posle if se izvrsava... Znaci pritisnem OK i posle toga nastavi po svom...
Da. Taj kod staviš odmah iza deklaracija, a pre izvršenja operacija koje zavise od unetih vrednosti.
Stavio sam tako...
Evo coda u mom programicicu:
Private Sub Forma_Isprave_Click()
On Error GoTo Err_Forma_Isprave_Click
Dim stDocName As String
Dim stLinkCriteria As String
If IsNull(Me![Prezime]) Then
MsgBox "Podaci nisu ispravno unešeni", vbCritical, "Greška"
Me![Prezime].SetFocus
End If
DoCmd.Close acForm, "frmTrazeniPodaci_OsnovniPodaci"
stDocName = "frmTrazeniPodaci_Isprave"
DoCmd.OpenForm stDocName, , , , acFormAdd
Exit_Forma_Isprave_Click:
Exit Sub
Err_Forma_Isprave_Click:
MsgBox Er.Description
Resume Exit_Forma_Isprave_Click
End Sub
... ali opet nece...
Javi da nesto fali, ali posle toga opet otvori novu formu..
Evo coda u mom programicicu:
Private Sub Forma_Isprave_Click()
On Error GoTo Err_Forma_Isprave_Click
Dim stDocName As String
Dim stLinkCriteria As String
If IsNull(Me![Prezime]) Then
MsgBox "Podaci nisu ispravno unešeni", vbCritical, "Greška"
Me![Prezime].SetFocus
End If
DoCmd.Close acForm, "frmTrazeniPodaci_OsnovniPodaci"
stDocName = "frmTrazeniPodaci_Isprave"
DoCmd.OpenForm stDocName, , , , acFormAdd
Exit_Forma_Isprave_Click:
Exit Sub
Err_Forma_Isprave_Click:
MsgBox Er.Description
Resume Exit_Forma_Isprave_Click
End Sub
... ali opet nece...
Javi da nesto fali, ali posle toga opet otvori novu formu..
Ispod
dodaj samo
Code:
Me![Prezime].SetFocus
Me![Prezime].SetFocus
dodaj samo
Code:
Exit Sub
Exit Sub
Potpis
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."
Ivo Andric
Ivo Andric
Zaboravio sam da napišem. Nakon Set Focus zbog nepopunjenog polja, trebalo bi da napusti subrutinu. Treba tako kako je Scelle napisao.
Hvala vam puno momci, to je to....
Stavio sam samo za jedno obavezno polje predlozeni kod, a za ostatak sam obaveznih polja samo ispred komande za zatvaranje te i otvaranje nove forme stavio
DoCmd.GoToRecord , , acNewRec
stim sto sam u tabelama obelezio obavezna polja.
Jer mi se desavalo da ako ne popunim nijedno polje da otvara sledecu formu, a ako popunim bar jedno polje onda javi da moraju da budu popunjena sva zahtevana polja.
Jeste malo seljacka varijanta, ali mozda nekome moze biti i od koristi....:)
Stavio sam samo za jedno obavezno polje predlozeni kod, a za ostatak sam obaveznih polja samo ispred komande za zatvaranje te i otvaranje nove forme stavio
DoCmd.GoToRecord , , acNewRec
stim sto sam u tabelama obelezio obavezna polja.
Jer mi se desavalo da ako ne popunim nijedno polje da otvara sledecu formu, a ako popunim bar jedno polje onda javi da moraju da budu popunjena sva zahtevana polja.
Jeste malo seljacka varijanta, ali mozda nekome moze biti i od koristi....:)
Nije seljački. Čak šta više. Mnogo je sigurnije u tabelama definisati koja su polja Required. Ja ovu metodu sa kodom koristim samo kad su u pitanju nevezane forme i nevezana polja. Recimo: Unesite početni datum i završni datum.