Avatar billede madiedk Nybegynder
12. januar 2008 - 23:15 Der er 6 kommentarer og
2 løsninger

bruge variabel uden værdi

Hej

hvis jeg har en kode hvor jeg har skrivet
sub test4()
Dim test as string
dim test2 as integer

end sub

sub test3 (test as string, test2 as integer)

test = 2

test2 = 4

end sub


vil det så virke, altså jeg kan jo bare teste det selv, men mit spørgmål er om man kan bruge variabeler der ikke har fået tildelt en værdi som argument, hvis ja, hvilke værdi har de så f.eks 0 eller "" eller hvad?
Avatar billede sjh Nybegynder
13. januar 2008 - 07:29 #1
Hvis det er en String så vil den have vadi ""
Hvis det er en Integer så vil den have vadi 0
Avatar billede madiedk Nybegynder
13. januar 2008 - 16:18 #2
kan man godt bruge dem som argument?
Avatar billede sjh Nybegynder
13. januar 2008 - 23:43 #3
Ja hvad mener du selv.. kan du tilføje en string (text) til en Integer ??

en Integer kan kun indeholde tal, og en String kan indeholde tal og tegn, og en Variant kan indeholde tal, tegn, object, array osv..
Avatar billede sjh Nybegynder
13. januar 2008 - 23:52 #4
En Integer kan indeholde tal fra -32767 til 32767 og hvad skulle være mere nærliggende end at standardværdi ikke skulle være 0
og en String kan indeholde tal og tegn og hvad skulle være mere nærliggende end at standardværdi ikke skulle være "" eller tom
Avatar billede sjh Nybegynder
13. januar 2008 - 23:56 #5
men du kan selfølige selv lave dine egen standardværdi fx.

Sub test3(Optional test As String = "2", Optional test2 As Integer = 4)
  MsgBox test
  MsgBox test2
End Sub

Private Sub Form_Load()
  Call test3
End Sub
Avatar billede klk Nybegynder
14. januar 2008 - 13:52 #6
Hej Madjedk

Du kan sagtens oprette variabler i din kode uden at tildele dem en værdi fra starten af.

Test vil være 0.
Test2 vil være "". Det er også det, som vi kalder TOM eller en tom streng. Henter du en tom streng fra en tabel eller fra en form er den derimod Null. Det er vigtigt at skelne mellem disse to situationer. For i den her sammenhæng vil følgende kode være forkert:
If Me.KundeNavn = "" Then
  MsgBox "Kundenavn er ikke udfyldt"
End If

Jeg har lavet et lille eksempel der ser således ud:

Private Sub Form_Close()

Dim test As String
Dim test2 As Integer

MsgBox test
MsgBox test2

If test = "" Then
  MsgBox "Variabelen test er TOM"
End If

End Sub

Hvis du bruger din debugger kan du også se deres initial værdi i Locals vinduet.
Avatar billede madiedk Nybegynder
16. januar 2008 - 23:54 #7
super, tak, smid et svar shj, så deler i. shj for det hurtigeste svar og klk for en mere uddybning
Avatar billede sjh Nybegynder
17. januar 2008 - 08:39 #8
Svar
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