Hallo Leute,
ich habe mal wieder ein Problem. Ich öffne das Formular B ohne dass ich Daten übergebe. Dieses Formular soll den User über den Zwischenstand informieren, während dann ein Code ausgeführt wird.
Wo muss der Code untergebracht werden? Wenn er in Form_Load, FOrm_Open oder Form_Current steht, wird der Code ausgeführt, aber das Formular wird nicht sichtbar...und die Informationen sind für den User nicht sichtbar... Ich weis nicht weiter:(
Hier ein Codeauszug:
Private Sub Form_Open()
Dim db As Database
Dim dbnew As Database
Set db = CurrentDb
Dim SQL1$
Dim SQL2$
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim I As Long, X As Long
Dim abschlussjahr As Long
Dim bookingnumber As Long
Dim pfad As String
Dim informationmarker As String
Dim abschlussdatumS As String
Dim helper As Integer
abschlussjahr = DLookup("Jahr", "tabJahresabschluss", "isnull(durchgefuehrt_am)")
abschlussdatumS = "#" & "12" & "/" & "31" & "/" & abschlussjahr & "#"
Me.txtJahresabschluss = "Vorgang 1 von 13 - Sollstellungen werden kontrolliert"
' 2. Offene Sollstellungsläufe überprüfen
[...]
Me.txtJahresabschluss = "Vorgang 2 von 13 - Abschlussbuchungen verarbeiten"
' 3. Abschlussbuchungen
[...]
Set rs1 = Nothing
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "frmSteuerung_Abschluesse"
End Sub
Ich danke vorab für eure Hilfe...
Hallo,
warum bindest Du das Formular nicht einfach an eine entsprechende Abfrage?
Dann braucht es keinen Code.
Hallo,
inwiefern an eine Abfrage binden?
Ich muss doch irgendwie den Prozess anstoßen und da hier diverse Tabellen angesprochen und diverse Handlungen als Jahresabschluss passieren, reicht eine Abfrage eher nicht... Oder ich verstehe momentan etwas falsch...
Es muss doch irgendeine Handlung geschehen, damit Access etwas nach der Öffnung macht, wenn ich das in einer anderen Prozedur habe...
Hallo,
naja, ich weis ja nicht was bei den [...] passiert.
Üblicherweise macht man Berechnungen in Abfragen und bindet Formulare an diese Abfragen.
In Abfragen lassen sich auch mehrere Tabellen verwenden, sofern man Verknüpfungen zwischen den Tabellen aufbauen kann.
Also in dem [...] werden Daten/Tabellen exportiert; einzelne Datensätze über Recordset modifiziert; Abschlussbuchungen, soweit nötig durchgeführt... SOmit wird dieser Weg nicht gehen...
Ich muss irgendwie das Formular geöffnet bekommen und danach etwas anstoßen...
Das Formular soll nur informieren, dass man aktuell bei Schritt 1,2,3 usw. ist, also eine vereinfachte Progress-Geschichte...
Hallo,
wie willst du denn einem Benutzer die Gelegenheit geben etwas zu sehen, wenn du ihm das Formular vor der Nase wieder zumachst? ;)
DoCmd.Close acForm, Me.NameAllerdings sehe ich selbst bei geöffnetem Formular wenig Informationsgehalt,
da du das Textfeld mit den Ablaufinformationen immer wieder überschreibst.
VBA ist zwar kein Rennpferd aber immer noch schnell genug um den Benutzer beim Lesen der Information zu überfordern.
Zitat...und danach etwas anstoßen...
Auch das geht, dazu KÖNNTEST du deinen Code ins Klick-Ereignis eines Button packen, der halt zu drücken ist,
wenn das Formular geladen wurde.
Oder du startest beim Formular-Öffnen einen Timer, der dann nach 3 Sekunden die Berechnungsroutine aufruft.
Da gibt es verschiedene Möglichkeiten wie du siehst.
Um dem Benutzer aber überhaupt die Möglichkeit zu geben deine Informationen zu lesen solltet du vielleicht eine
Funktion einbauen, die die Codeausführung unterbricht nachdem du den Text ins Feld 'txtJahresabschluss' geschrieben hast.
So eine Funktion kannst du hier ...
http://dbwiki.net/wiki/VBA_Tipp:_Programmausf%C3%BChrung_f%C3%BCr_einen_Zeitraum_unterbrechen (http://dbwiki.net/wiki/VBA_Tipp:_Programmausf%C3%BChrung_f%C3%BCr_einen_Zeitraum_unterbrechen)
...rausholen und in dein Projekt einbauen.
HTH