Avatar billede rusti Nybegynder
02. juni 2005 - 04:45 Der er 6 kommentarer og
1 løsning

Problemer med If sætning

hej jeg har et problem med en If sætning hvor jeg skal tjekke på på en dato, jeg skal tjekke at der ikke står 00-00-0000 i feltet txtAnsat. jeg har prøvet at skrive

I = Len(txtAnsat.Text)
If I = 00-00-0000 Then
MsgBox "Ansættelsesdato skal skrives på følgende måde dd-mm-yyyy.", vbExclamation + vbOKOnly, "Ansættelsesdato'en er ikke indtastet Korekt"
txtAnsat.SetFocus
Exit Sub
End If

men så skriver de 0 - 0 - 0 istedet for 00-00-0000 jeg har også prøvet med '00-00-0000' og så siger den bare Expected: expression og jeg har prøvet med "00-00-0000" men det virker ikke.
nogen der kan fortælle mig hvad jeg så skal skrive for at det virker.
Avatar billede sjh Nybegynder
02. juni 2005 - 04:49 #1
If txtAnsat.Text = "00-00-0000" Then
Avatar billede nielle Nybegynder
02. juni 2005 - 06:32 #2
if (not IsDate(txtAnsat.Text)) then
Avatar billede martin_moth Mester
02. juni 2005 - 09:29 #3
Du skriver:
  I = Len(txtAnsat.Text)

Nu indeholder I antallet af tegn i det tekst, der står i text1.text. Har du skrevet "00-00-0000" indeholder I altså tallet 10, da der er 10 tegn i teksten

Du skriver:
  If I = 00-00-0000 Then

Du sammenligner herover æbler og bananer, og det kan man ikke. VB vil opfatte 00-00-0000 som en variabel (med et åndsvagt navn), og ikke som noget tekst. Altså sammenligner du en variabel I indeholdene værdien 10 med en tom variabel ved navn 00-00-0000.

Vil du sammenligne med teksten 00-00-0000, skal du bruge " før at VB opfatter det som tekst i stedet for en tom variabel. Husker du ", er det dog stadig pærer og bananer du sammenligner: En variabel med værdien 10 sammenlignes med noget tekst.



Så alt i alt er det noget nonsens, du har i di9ne første to linier kodee, og du skal slet ikke bruge Len() til noget som helst.

Brug svar fra sjh eller nielle, og drop linien med Len(text1.text)


Godt råd:

Brug "require variable declaration" (sættes under options) - så vil VB f.eks. i ovenstående tilfælde fortælle dig, at du bruger en variabel med navnet 00-00-0000, men at den ikke er oprettet (ved Dim 00-00-0000 as ....). Og så tænker du "Aha - det er jo helt forkert det jeg skriver her"

:o)
Avatar billede martin_moth Mester
02. juni 2005 - 09:30 #4
Jeg har viast skrevet text1.text et par steder - jeg mener naturligvis txtAnsat.Text
Avatar billede rusti Nybegynder
02. juni 2005 - 14:27 #5
tak nielle det virkede gider du sende et svar
Avatar billede nielle Nybegynder
02. juni 2005 - 14:54 #6
Svar :^)
Avatar billede martin_moth Mester
22. juni 2005 - 19:09 #7
Du skal stadig ikke bruge I = Len(txtAnsat.Text) til noget i din kode...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester