PDA

Visualizza la versione completa : [VB6] Controllo sui campi obbligatori


gecoss
18-11-2002, 12:50
Dovrei fare in controllo sui campi obbligatori di un fom, per˛ ci sono due piccoli problemi:

1. I campi sono 33

2. Dovrei avere la possibilitÓ di modificare i controlli in ogni momento.

Stavo cominciando a fare in questo modo:

Private Sub Cognome_Validate(Cancel As Boolean)
If Cognome.Text = "" Then
MsgBox "Il campo Ŕ Obbligatorio", vbExclamation, "Attenzione"
Cancel = True
End If
End Sub

Come si fa ad evitare di scrivere questo codice 33 volte??

Toeke
18-11-2002, 12:55
I 33 campi sono tutti di tipo text?

gecoss
18-11-2002, 13:02
precisamente ci sono 30 text e 3 combo

Laufer
18-11-2002, 14:46
Puoi creare una matrice di controlli e ciclare sulla stessa per controllare almeno le 30 text e le 3 combo.
Cosicche invece di fare 33 controlli ne fai solo 2 :D.

sebamix
18-11-2002, 15:12
O anche:



' ...
' Nel click di un command o dove ti serve...
' ...
dim cCon as control
dim strMsg as string
for each cCon in me.controls
if typeof ccon is textbox then
if ccon.text="" then
select case ccon.name
case text1.name
strMsg=strMsg & vbcrlf & "Text1"
case text2.name
strMsg=strMsg & vbcrlf & "Text2"
' ...
end select
end if
elseif typeof ccon is combobox then
' Qui potresti controllare anche la property ListIndex, che se Ŕ -1 non Ŕ selezionato nulla nel Combo. Se controlli il Text puoi unire tutto tra ComboBox e TextBox... spero di essermi spiegato ^_^
if ccon.text="" then
select case ccon.name
case combo1.name
strMsg=strMsg & vbcrlf & "Combo1"
'...
end select
end if
end if
next cCon
set cCon = nothing

if strmsg<>"" then
msgbox "I seguenti campi devono essere compilati:" & strMsg,vbinformation,"Attenzione ..."
exit sub
end if
' Qua fai quello che devi fare nel caso i campi siano tutti OK;
' ...
' ...


:ciauz:

Loading