Hej! Har skapat ett formulär med antal Command buttons. Bland andra Ok och Avbryt samt ett inmatningsfält för datum. Datumfältet är obligatoriskt för användare att fylla vilket jag har fått till via nedanstående kod (lånad från xldennis). eventet du har lagt till körs så fort man lämnar datumboxen och även då du stänger med avbryt, Tack för ditt svar, det hjälper mig en bra bit på vägen! Både i förståelse och lösning på problemet. Jag inser ju dessvärre att boolean inte är något jag förstår hur det fungerar, jag misstänker att det skall in nedan inom parenteserna? är det vb6 eller vb.net du kodar ? Hej,Inmatningskontroll
Private Sub txtDatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = CheckInnehåll(txtDatum)
End Sub
Private Function CheckInnehåll(txtDatum As MSForms.TextBox) As Boolean
Dim stDatum As String
stDatum = txtDatum.Text
If IsDate(stDatum) Then
CheckInnehåll = False
Else
MsgBox "Datum saknas", vbExclamation
txtDatum.Text = ""
CheckInnehåll = True
End If
End Function
Problemet är att kontrollen genomförs oavsett vilket knapp jag använder, det vill säga även vid avbryt. Vilket såklart inte är korrekt. Hur, på enklaste sätt, får jag till att kontrollen endast görs när användare klickar OK?
/Den totala novisenSv: Inmatningskontroll
så antingen lägger du kontrollen i Ok knappens event i stället eller sätta någon form av flaggs (boolean) när du klickar på avbryt och kontrolelra den i txtDatum_exit
tex. (pseudokod) ingenkontroll ska vara en i formen global variabel.
private sub avbrytknapp(..)
ingenkontroll = true
end sub
Private Sub txtDatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
IF ingenkontroll = false THEN
Cancel = CheckInnehåll(txtDatum)
END IF
End SubSv:Inmatningskontroll
Private Sub cmdAvbryt_Click()
ingenkontroll = True
Unload Me
End Sub
Vore jättetacksam för fortsatt stöttning men även lite tips på var jag kan lära mig mer om detta!
/MarcusSv: Inmatningskontroll
här finns en beginners guide för vb6
http://www.vb6.us/guides/visual-basic-6-beginners-guide
och en för vb.net
http://www.homeandlearn.co.uk/net/vbnet.html
en boolean är antingen sann eller falsk , tex när du ställer ett if statement så får vill den ha en boolean
oftast i form av IF A=B THEN ,, där A=B ger resultatet i en boolean
mer info om dem hittar du här
http://msdn.microsoft.com/en-us/library/wts33hb3(v=vs.80).aspxSv: Inmatningskontroll
Type boolean har sitt ursprung i den digitala elektroniken, där det finns kretsar (grindar) av typerna AND, OR, XOR,NAND och NOR.
Dessa har anammats i dagens programmeringsspråk.
Varje grind har två ingångar och en utgång.
Beroende på vad de båda ingångarna har varierar utgången.
Man använder exakt samma uttryck i programmering.
Följande "värdetabeller" gäller :
I programmeringen kallar vi resultatet True=1 eller False=0.
Vi har variabel A och B
För uttrycket AND :
A B Resultat
------------------
0 0 0
0 1 0
1 0 0
1 1 1
För uttrycket OR :
A B Resultat
-----------------
0 0 0
0 1 1
1 0 1
1 1 1
För uttrycket XOR :
A B Resultat
-----------------
0 0 0
0 1 1
1 0 1
1 1 0
NAND och NOR ar inverterade AND och OR, d.v.s samma, fast tvärt om.
Jag är osäker på om NAND och NOR finns i VB, tror inte det.
Detta innebär att när du kodar i ex.vis VB och skriver :
<code>
If A OR B then
..code
</code>
Är uttrycket "True" även om båda variablerna = True
Men..
<code>
If A XOR B then
...code
</code>
Är bara uttrycket "True" om endast EN av variablerna = True.