Msgbox voor een opdrachtknop plaatsen

Status
Niet open voor verdere reacties.

Japsur

Gebruiker
Lid geworden
9 apr 2004
Berichten
650
Hallo,

daar was ik weer,
Ik had nog iets bedacht waardoor ik mijn programma nog iets beter wil laten draaien (en veiliger mbt. andere personen). Ik heb op dit moment een opdrachtknop in mijn hoofdform zitten wat vrij gevaarlijk is. Als je daar op drukt, ben je alle gegevens kwijt. Nu wil ik hier graag een soort messagebox voor zetten alleen nu weet ik niet hoe dat moet.
De functie luidt: MsgBox («bericht»; «type»; «titel»)
Ik weet niet wat ik voor deze dingen moet invullen? De vraag moet zijn van: weet u zeker dat u deze gegevens wilt wissen, met de opties Ja en Nee. Bij ja moet ie uiteraard de gegevens wissen en bij Nee niet :D
Het probleem lijkt mij opzich niet zo moeilijk?:)
Kan iemand mij hiermee helpen?:rolleyes: :rolleyes:
 
Als je gewoon effe in de help van VBA kijkt staat daar precies in wat je allemaal in moet vullen om dat voor elkaar te krijgen. Het is inderdaad niet zo moeilijk:

Geeft een bericht weer in een dialoogvenster, wacht totdat de gebruiker een knop kiest en geeft als resultaat een Integer-waarde die aangeeft welke knop de gebruiker heeft gekozen.

Syntaxis

MsgBox(prompt[, knoppen] [, titel] [, helpbestand, context])

De functie MsgBox heeft de volgende benoemde argumenten:

Onderdeel Beschrijving
prompt Vereist. Een tekenreeksexpressie die wordt weergegeven als het bericht in het dialoogvenster. De maximumlengte van prompt is ongeveer 1024 tekens, afhankelijk van de breedte van de gebruikte tekens. Neem tussen elke regel een regelterugloop (Chr(13)), regelinvoer (Chr(10)) of een regelterugloop-regelinvoer (Chr(13) & Chr(10)) op wanneer prompt uit meer dan één regel bestaat.
buttons Optioneel. Een numerieke expressie die de som van verschillende waarden vormt. Deze waarden vertegenwoordigen het aantal en type weer te geven knoppen, de pictogramopmaak die wordt gebruikt, de standaardknop en de modaliteit van het dialoogvenster. Als u dit getal weglaat, is de standaardwaarde voor buttons 0.
title Optioneel. Een tekenreeksexpressie die op de titelbalk van het dialoogvenster wordt weergegeven. Als u title weglaat wordt de toepassingsnaam in de titelbalk geplaatst.
helpfile Optioneel. Een tekenreeksexpressie die het Help-bestand aangeeft dat wordt gebruikt voor contextafhankelijke Help voor het dialoogvenster. Als u helpfile opgeeft, dient u ook het argument context op te geven.
context Optioneel. Een numerieke expressie voor het Help-contextnummer dat de schrijver van de Help aan het desbetreffende Help-onderwerp heeft toegekend. Als u context opgeeft, dient u ook het argument helpfile op te geven.



Instellingen

Het argument buttons heeft de volgende instellingen:

Constante Waarde Beschrijving
vbOKOnly 0 Uitsluitend de knop OK weergeven.
vbOKCancel 1 De knoppen OK en Cancel weergeven.
vbAbortRetryIgnore 2 De knoppen Abort, Retry en Ignore weergeven.
vbYesNoCancel 3 De knoppen Yes, No en Cancel weergeven.
vbYesNo 4 De knoppen Yes en No weergeven.
vbRetryCancel 5 De knoppen Retry en Cancel weergeven.
vbCritical 16 Het pictogram Critical Message weergeven.
vbQuestion 32 Het pictogram Warning Query weergeven.
vbExclamation 48 Het pictogram Warning Message weergeven.
vbInformation 64 Het pictogram Information Message weergeven.
vbDefaultButton1 0 De eerste knop is de standaardinstelling.
vbDefaultButton2 256 De tweede knop is de standaardinstelling.
vbDefaultButton3 512 De derde knop is de standaardinstelling.
vbDefaultButton4 768 De vierde knop is de standaardinstelling.
vbApplicationModal 0 Voorwaarde voor uitvoering van de toepassing. De gebruiker moet op het berichtvenster reageren voordat het werken in de actieve toepassing kan worden voorgezet.
vbSystemModal 4096 Voorwaarde voor uitvoering van het systeem. Alle toepassingen worden onderbroken totdat de gebruiker op het berichtvenster heeft gereageerd.
vbMsgBoxHelpButton 16384 Voegt de knop Help aan het berichtvenster toe.
VbMsgBoxSetForeground 65536 Specificeert het berichtvenster als het voorgrondvenster.
vbMsgBoxRight 524288 Tekst wordt rechts uitgelijnd.
vbMsgBoxRtlReading 1048576 Geeft op dat tekst op Hebreeuwse en Arabische systemen van rechts naar links moet worden weergegeven.



De eerste groep waarden (0 - 5) beschrijft het aantal knoppen en het type knop dat in het dialoogvenster wordt weergegeven. De tweede groep (16, 32, 48, 64) beschrijft de pictogramopmaak. De derde groep (0, 256, 512) stelt de standaardknop in en de vierde groep (0, 4096) bepaalt de modaliteit voor het berichtvenster. Gebruik, als u getallen optelt, slechts één getal uit elke groep om een eindwaarde voor het argument buttons te maken.

Opmerking Deze constanten worden geleverd door Visual Basic for Applications. Hierdoor kunt u de namen van de constanten op willekeurige posities in de programma-instructies gebruiken in plaats van de waarden.

Resultaatwaarden

Constante Waarde Beschrijving
vbOK 1 OK
vbCancel 2 Annuleren
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No



Notities

Als zowel het argument helpfile als context is opgegeven, kan de gebruiker op F1 (Windows) of HELP (Macintosh) drukken om het met context corresponderende Help-onderwerp op te roepen. In sommige hosttoepassingen, zoals bijvoorbeeld Microsoft Excel, wordt automatisch een Help-knop aan het dialoogvenster toegevoegd.

Als het dialoogvenster een knop Cancel bevat, heeft het drukken op de knop ESC hetzelfde resultaat als het kiezen van Cancel. Als het dialoogvenster een knop Help bevat, is contextgevoelige Help voor het dialoogvenster aanwezig. Er wordt echter pas een resultaatwaarde gegeven nadat u een andere knop hebt gekozen.

Opmerking Gebruik MsgBox in een expressie als u niet alleen het eerste benoemde argument wilt opgeven. Als u positionele argumenten wilt weglaten, neemt u de komma als scheidingsteken op.

Voorbeeld van de functie MsgBox
Dit voorbeeld maakt gebruik van de functie MsgBox om een bericht voor een kritieke fout weer te geven in een dialoogvenster met een knop Ja en Nee. De knop Nee is opgegeven als de standaardreactie. De waarde die de functie MsgBox als resultaat geeft, is afhankelijk van de knop die u kiest. Dit voorbeeld gaat ervan uit dat DEMO.HLP een Help-bestand is dat een onderwerp bevat met een Help-contextnummer dat gelijk is aan 1000.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Wilt u doorgaan?" ' Definieert bericht.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Definieert knoppen.
Title = "Demo MsgBox" ' Definieert titel.
Help = "DEMO.HLP" ' Definieert Help-bestand.
Ctxt = 1000 ' Definieert onderwerp
' context.
' Geeft bericht weer.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' Gebruiker koos Ja.
MyString = "Ja" ' Voert bepaalde handeling uit.
Else ' Gebruiker koos Nee.
MyString = "Nee" ' Voert bepaalde handeling uit.
End If
 
Ik ben er mee bezig geweest maar nu snap ik er niets van.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Wilt u doorgaan?" ' Definieert bericht.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Definieert knoppen.
Title = "Demo MsgBox" ' Definieert titel.
Help = "DEMO.HLP" ' Definieert Help-bestand.
Ctxt = 1000 ' Definieert onderwerp
' context.
' Geeft bericht weer.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' Gebruiker koos Ja.
MyString = "Ja" ' Voert bepaalde handeling uit.
Else ' Gebruiker koos Nee.
MyString = "Nee" ' Voert bepaalde handeling uit.
End If

Bij Msg = geeft ie telkens een compileerfout:confused: Verder wil ik er geen help of ctxt in hebben.
Wanneer dus "ja" wordt gekozen moet er een macro gestart worden en bij nee, moet er gecancelled worden. HELP:rolleyes:
 
Oude oplossing

Deze oplossing heb ik jaren geleden van de Help.mij site gehaald. In dit voorbeeld laat ik de querie "Qtest" uitvoeren als men voor ja kiest. Bij nee gebeurt er niets en kom je terug in je formulier.

Dim stDocName As String

stDocName = "Qtest"

If MsgBox("Weet u zeker dat u al uw data naar de knoppen wil helpen?", vbYesNo, "Belangrijke vraag") = vbYes Then DoCmd.OpenQuery stDocName, acNormal, acEdit

Simpel maar doeltreffend ( scheelt een hoop lezen). Suc6
 
Laatst bewerkt:
Hij begint nu telkens om een macro te vragen. Typ ik de naam van de macro in, dan geeft ie telkens een foutmedling aan: ongeldige procedurenaam. Ik snap er niets meer van. Ik heb vanalles al geprobeerd en gedaan.:confused:
 
Het is na wikken en wegen gelukt. Bedankt iedereen!:thumb: :thumb:
 
Hij begint nu telkens om een macro te vragen. Typ ik de naam van de macro in, dan geeft ie telkens een foutmedling aan: ongeldige procedurenaam. Ik snap er niets meer van. Ik heb vanalles al geprobeerd en gedaan.:confused:

Hoe heb je dit dan gedaan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan