Lars skrev:
> Hej, jeg er ny med Visual Basic
Så er dette det rigtige sted at henvende sig
> Problemet er at i nedenstående eks. samt andre kommer der ingen
> msgbox, det eneste jeg ser er et tomt "Form" window.
> Hvordan skal man overhovedet kunne lære når den mest simple kode fejler??
> Public Sub
()
....
> End Sub
Koden, som du har vist, er i og for sig helt korrekt og fejler skam slet
ikke - hvis den bliver kørt.
Problemet er nok snarere at du aldrig får kørt den!
Ser du: Det er sådan at VB er hændelsesstyret (engelsk: event), og det at
lave et program, som viser en form som eventuelt indeholder noget kode, gør
ikke automatisk at ens kode bliver afviklet.
Der skal en hændelse til!
Det kan f.eks. være et tryk på en knap (CommandButton) eller når VB
signallerer at ens form er oprettet og klar til at blive vist på skærmen.
Lad os antage at du ønsker at proceduren
skal køres hver gang din form
bliver oprettet og skal til at vises på skærmen. Læg da følgende kode ind:
Private Sub Form_Load()
End Sub
Nu bliver proceduren
kaldt hver gang hændelsen "form er oprettet i
arbejdslageret (loaded)" optræder. Problemet er blot at dette sker INDEN
formen rent faktisk vises på skærmen. Men det er der råd for.
Indsætter du i stedet følgende kode:
Private Sub Form_Load()
Me.Show
End Sub
Betyder det, at du sikrer dig at formen (der refereres til den aktuelle form
ved at bruge Me) vises på skærmen INDEN proceduren
bliver udført.
Hvis du i stedet ønsker at
skal køres hver gang du trykker på en knap,
lægger du en knap (CommandButton) på din form og indsætter følgende kode:
Private Sub Command1_Click()
End Sub
Bemærk at den FØRSTE knap, som lægges på en form får navnet Command1, den
næste får navnet Command2 osv.
Derfor virker eksemplet naturligvis (se på navnet på proceduren) kun for den
FØRSTE CommandButton, som du lægger på din form.
Du sidder måske nu og tænker: "Hvordan skal jeg dog kunne vide hvad alle
disse ting hedder?", og her kommer VB dig til hjælp!
Lige ovenover vinduet, som indeholder din kode, har du i venstre side en
liste over alle de kontroller, som er blevet lagt på den aktuelle form, og i
højre side de hændelser, som den aktuelle kontrol kan "komme ud for". Klik
på én af dem, og en tom procedure med det korrekte navn vil blive oprettet.
-------
Tomas