IT Fjernundervisning

Simpel brugerdialog

Beskrivelse

Simpel brugerdialog

Der er to interessante metoder til at skabe lidt dialog med brugeren.

MsgBox

Den første hedder MsgBox og bruges, som navnet antyder, til at vise en beskedboks på skærmen. Syntaksen for MsgBox er (hentet fra hjælpe funktionen):

MsgBox prompt[, buttons] [, title] [, helpfile, context]

Dette betyder at man skal angive en prompt, men de ting, der står i kantede parenteser behøver man ikke angive. Det betyder at vi f.eks. kan skrive

MsgBox "Velkommen til min makro"

Og det kommer så til at se sådan her ud:

Access VBA kursus - msgbox - fjernundervisning

Og skriver man

MsgBox "Velkommen til min makro", vbYesNo, "Min makro"

Kommer det til at se sådan her ud:

Access VBA kursus - msgbox med titel og knapper- fjernundervisning

Bemærk, at når man kommer til MsgBox "Velkommen til min makro", dukker der en liste op over mulige knapper man kan sætte på sin MsgBox. vbYesNo dækker i virkeligheden over tallet 4! - det er én af mange konstanter, der er indbygget i VBA.

Returværdi fra en MsgBox

Det giver jo ikke meget mening at sætte knapper på sådan en MsgBox, hvis vi ikke kan finde ud af, hvilken af de to knapper brugeren har trykket på. Vil man have resultater ud af en MsgBox ser det sådan her ud:

svar = MsgBox("Velkommen til min makro", vbYesNo, "Min makro")  txtNavn = svar

Bemærk, at der er kommet parenteser på! - det er sådan vi signalerer, at vi gerne vil have et svar retur fra metoden. svar er "bare" en variabel, der bruges til at gemme værdien der kommer retur fra MsgBoxen - man bestemmer selv hvad sådanne variable skal hedde.

InputBox

En InputBox giver brugeren mulighed for at skrive lidt til os. Syntaksen er:

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

Og skriver man

svar = InputBox("Hvad hedder du? ", "Velkommen til")  txtNavn = svar

Ser det sådan her ud:

Access VBA kursus - inputbox - fjernundervisning

Bemærk, at der her altid skal være parenteser - det er jo ikke specielt at lave en inputbox, hvis man ikke bruger resultatet til noget.

 


Øvelse

Lav en kopi af databasen fra sidste øvelse og kald den "Dialog.mdb".

  1. Skriv en makro, der danner disse dialoger og afleverer resultaterne et passende sted på salgsformularn.
    Access VBA kursus - msgbox med titel - fjernundervisning




    (skal naturligvis afspejle de antal brugeren skriver i den forrige dialog)
  2. Sørg for at makroen kan aktiveres fra en knap i arket

Send databasen til mig

 

 


Løsning

Du kan downloade min løsning her

Min kode ser sådan her ud:

Private Sub cmdDialog_Click()    MsgBox "Velkommen til min makro", , "Velkommen"   navn = InputBox("Hvad hedder du?", "Velkommen")   Firma.Value = navn   If MsgBox("Skal vi gå i gang?", vbYesNo, "Er du klar?") = vbYes Then     AntalGange = InputBox("Hvor mange gange skal vi køre?", "Er du frisk?")     Antal.Value = AntalGange     MsgBox "Meget fint vi kører " & Antal & " gange"   Else     MsgBox "ØV"   End If End Sub 

Brug for hjælp til VBA, VSTO eller SQL?

Scient Data tilbyder professionel IT-konsulentbistand

Kontakt Scient Data →