VB VBA in Access

klaus055

Klammpause
ID: 151533
L
6 Januar 2008
1.040
90
Hey, für den MS Office Kurs in der Uni müssen wir VBA Aufgaben lösen (absolute Basics), allerdings fehlt mir der komplette Ansatz und da ich auch in den letzten 2 Stunden nicht weitergekommen bin, wollte ich mal hier nachfragen.

Für eine Aufgabe für die Uni hänge ich an folgendem Teilproblem:


Das Ergebnis soll in einer Messagebox ausgegeben werden. In dieser soll ebenfalls erfragt werden, ob eine erneute Berechnung durchgeführt werden soll. Abhängig von der Antwort soll entweder erneut ein neuer Berechnungsvorgang durchgeführt werden, oder die Ausführung beendet werden.

Mein Problem ist jetzt, dass ich erstmal nur die Messagebox in zwei Teilen hingekriegt habe (wie kann ich diese zusammenfassen?) und außerdem, wie man ein Restart des Makros erzwingt? Also der Befehl, der das Programm wieder von vorne ablaufen lässt fehlt mir.

Der Codeauszug aus diesem Bereich:

title1 = "Result"
MsgBox Temp, vbInformation, title1

title2 = "Frage"
ByWert = MsgBox("Möchtest Du noch eine Fakultät berechnen?", vbYesNo, title2)

If ByWert = 6 Then

Text = MsgBox("Programm neu starten", vbInformation, "Restart")

ElseIf ByWert = 7 Then

Text = MsgBox("Schönen Tag noch!", vbInformation, "Ciao")

End If

Ich freue mich über eure Hilfe.
 
Mein Problem ist jetzt, dass ich erstmal nur die Messagebox in zwei Teilen hingekriegt habe (wie kann ich diese zusammenfassen?) [...]
Gib halt Ergebnis aus, lass ne Zeile frei und stell drunter die Frage. Die Flags für Info-Icon und Ja-Nein kannst du durch Veroderung kombinieren.
Also der Befehl, der das Programm wieder von vorne ablaufen lässt fehlt mir.
Mach ne Schleife "Solange der Benutzer am Ende 'Ja, Programm neu starten".

P.S. Was sollen die Werte 6 und 7 bedeuten? Den Code kann keine Sau mehr lesen. Benutz die vorgesehenen Konstanten dafür.
 
Also wenn ich mir die Aufgaben stellung so ansehe ist das nicht schwehr.

du Brauchst eine Schleife.. Die immer ausgeführt wird solange der Benutzer nicht auf Nein Klick also brauchst du eine DO...While Schleife:
Code:
Dim Stop as Bool

Stop = False;
Do 

rechnefaktor(DIE ZAHL)

while (Stop == False)
Für die Berechnung an sich wurde ich eine extra Funktion machen der du die Werte übergibst..

Da man ja auch Murks an eine Messege Box übergeben kann muss du Prüfen ob der Wert eine Zahl ist wenn nicht sollte er idealer weise Anhalten.
Dafür könntest du auch eine Funktion machen musst du aber nicht.
Code:
Dim X as Integer
sub rechnefaktor(X)


End SUB
Der Code soll nur ein Ansatz für dich sein.
Achso ich mag vb nicht besonders, der Syntax ist eher unübersichtlich.