PDA

Vollständige Version anzeigen : Undo-Methode auf UFo anwenden


steffi_m
28.06.2001, 06:55
Hi hi an Alle

ich bins wieder ;)
erstmal vielen Dank an alle die mir bei meinem letzten Prob geholfen haben !!!

also jetzt mein neues Prob:
Birgit hatte mich, mit ihrem Beitrag bei Maxs(Thema:Speichern v. Daten verhindern),
ein gutes Stück weiter gebracht

nun hänge ich mal wieder
denn die Undo-Methode funktioniert im
UFo Nr1 sehr gut
aber ich habe in meinem zwei UFo´s und das zweite spricht auf die Undo-Methode nicht an

also dem 1. UFo muß man doch den Focus geben um es für die Methode zu aktivieren oder ?

Me.UF_Mitglieder_aendern.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

aber wie spreche ich das 2. UFo an, um die Undo-Methode auch da verwenden zu können

könnt Ihr mir da weiterhelfen ???

Gruß Steffi

Morli
28.06.2001, 07:24
Hallo Steffi,

eventuell verstehe ich ja nicht so ganz, was Du brauchst, aber trotzdem.....:

Du kannst doch dem zweite UFo mit der gleichen Methode den Focus zuweisen und dann wie beim UFo1 weitermachen.
Also zuerst UFo1 abarbeiten, dann Ufo2, u.s.w.

Gruß

Rainer ;)

steffi_m
28.06.2001, 09:40
hi Rainer

genau das funktioniert eben nicht
ich mach bestimmt was falsch

ich hab es so probiert:

Private Sub close_Click()
Dim stDocName1 As String
Dim ant As String

ant = MsgBox(" Sind die eingegebenen Daten korrekt@ und können gespeichert werden ?@" + _
" ", vbYesNo, "Datespeicherung")
If ant = vbYes Then
stDocName1 = "HauptFormular"
DoCmd.close acForm, stDocName1, acSaveYes
Else
Me.UF1.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

Me.UF2.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

End If

End Sub

wenn ich es so eingebe, kommt ne Fehlermeldung (2024) das das Objekt(UF2) erst aktiviert sein muß

irgendwie raff ich das nicht :(

evtl. hast Du oder ein anderer noch ne Idee

Morli
28.06.2001, 09:50
Hi Steffi,

ich vermute mal das die Abarbeitung des Codes schneller läuft, als dein Undo.
Soll heißen der Focus soll schon zu UFo2 gegeben werden, bevor UFo1 fertig ist.
Versuche mal, hier eine kleine Schleife einzubauen, die Dir ein paar Sekunden bringt.

Gruß

Rainer ;)

steffi_m
28.06.2001, 14:00
hi Rainer

das ist ne gute Idee
gibt nur ein Problem
ich weiß überhaupt nicht, wie ich so eine "kleine" Schleife fabreziere
programmier-technisch bin ich ned so ganz auf dem laufenden (also,nicht viel Ahnung)
gibt es dafür irgendwo ein Bsp.???
also die Hilfe v. Access bringt mich da nicht weiter

"wäre nett, wenn ich noch ein Tip bekommen könnte" :rolleyes:

Gruß Steffi

Morli
28.06.2001, 14:17
Hallo Steffi,

also bau mal folgendes ein:

Private Sub close_Click()
Dim stDocName1 As String
Dim ant As String
Dim LoopZeit as Date

ant = MsgBox(" Sind die eingegebenen Daten korrekt@ und können gespeichert werden ?@" + _
" ", vbYesNo, "Datespeicherung")
If ant = vbYes Then
stDocName1 = "HauptFormular"
DoCmd.close acForm, stDocName1, acSaveYes
Else
LoopZeit = DateAdd("s",5,Time) 'Addiert 5 Sekunden zu aktuellen Zeit
Me.UF1.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Do Until Time = LoopZeit
'Warten
loop
Me.UF2.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

End If

End Sub


Gruß

Rainer ;)

steffi_m
28.06.2001, 17:56
Danke Rainer

ich bau es mal ei und schau dann mal was passiert ;)
auf jeden Fall, vielen Dank für Deine super Hilfe
ich kann mich leider erst morgen wieder einklinken

also bis dann :D

Gruß Steffi