[gelöst] Access save und exit mit vba

Diskutiere [gelöst] Access save und exit mit vba im MS Office 2007 Forum im Bereich Office Produkte; Hallo zusammen, ich habe ein Formulat (FRM_Komponenten) mit einem Unterformular (UF_FRM_Ticket) damit ich auf einem Blick sehen kann, was ich...
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
Hallo zusammen,

ich habe ein Formulat (FRM_Komponenten) mit einem Unterformular (UF_FRM_Ticket) damit ich auf einem Blick sehen kann, was ich wann an welchem PC gemacht habe.

Mit einem Button öffnet sich ein neues Formular, in dem ich dann ein neues Ticket erstellen kann. Dieses Formular enthält momentan 2 Buttons. Einen reinen "Speichern"-Button, den ich mit dem Assistenten erstellt habe und einen zweiten, den ich mit VBA programmiert habe:

Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    Forms!FRM_Komponenten!UF_FRM_Ticket.Requery
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
End Sub
Klicke ich NUR auf meinen VBA-Button, wird der Datensatz zwar gespeichert und das Formular geschlossen, aber mein neues Ticket ist im UF_FRM_Ticket nicht zu sehen. Ich muss erst einen Datensatz nach vorn und wieder zurückblättern, damit ich das Ticket sehe.

Klicke ich allerdings erst auf den Macro-Button und dann auf meinen VBA-Button, dann erscheint auch sofort das Ticket im UF.

Jemand eine Idee, wie ich meinen VBA-Button umprogrammieren muss, damit ich diesen Macro-Save-Button wegschmeißen kann?

Stefan
 
Zuletzt bearbeitet:
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.376
Standort
in der Nähe eines Rechners
Laut dem Titel von deinem Thread hier suchst du nach "Save und Exit"

das wäre der Befehl
DoCmd.Quit acQuitSaveAll
Falls du aber nur die Aktualisierung des UF meinst, dann reicht normalerweise der Befehl

Forms!FORMULARNAME.Unterformularnahme.REFRESH
kann sein, dass
Forms!FORMULARNAME.REFRESH
bereits ausreicht, je nachdem wo du nach dem Klick auf den Button dich befindest.

mfg

PS: Sollte ich dich komplett falsch verstanden haben, schlag mich :D
 
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
...und hört sich auch suppi an, aber dann kommt der böse Debugger und schlägt zu, weil er "refresh" nicht kennt.

Meine erste logische Reihenfolge war:
Ticket-Formular speichern
Ticket-Formular schließen
Komponentenformular mit diesem Ticket-UF reloaden/refreshen/requiren wie auch immer, hauptsache die Daten, die ich grad im Ticket-FRM eingetragen habe, erscheinen nun auch im Komponenten-FRM bzw. in diesem Ticket-UF.

Allerdings führt er den Refresh dann nicht mehr aus, weil das Formular ja bereits geschlossen ist (Ticketformular schließen). Deshalb muss der Refresh noch VOR dem Schließen ausgeführt werden.

PS: Warum zeigt mit der VBA-Editor nicht die Möglichkeiten nach dem Punkt an, wenn die Zeile mit "Forms!" anfängt?!?!

Stefan
 
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.376
Standort
in der Nähe eines Rechners
...und hört sich auch suppi an, aber dann kommt der böse Debugger und schlägt zu, weil er "refresh" nicht kennt.
oje - mein fehler :( .... das ist ja office 2007 bei dir. Moment mal nachsehen am anderen Rechner, was der sagt.
Meine og. VBA-Befehle sind ja von Office 2003
 
gman24

gman24

Mitglied seit
13.07.2006
Beiträge
1.860
...und hört sich auch suppi an, aber dann kommt der böse Debugger und schlägt zu, weil er "refresh" nicht kennt.
refresh kenn ich auch net von access, aber du solltest erfolg haben, wenn du als befehl eingibst frm.blabla.requery
 
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.376
Standort
in der Nähe eines Rechners
refresh ist Datensatzaktualisierung in VBA bis Office 2003.
Hab jetzt nachgesehen ;)

Bei Access 2007 sollte der Befehl repaintobjekt vorhanden sein bzw. repaint

Such einfach in der VBA-Hilfe von Access07 nach repaint für die genaue Schreibweise von dem Befehl

cu
 
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
Momentan schauts jetzt so aus:

Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    Forms("FRM_Komponenten").Form.Repaint
    Forms("FRM_Komponenten").UF_FRM_Ticket.Form.Requery
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
End Sub
Klappt solange schon Datensätze vorhanden sind. Ist allerdings noch KEIN Ticket vorhanden und ich lege das erste Ticket an, dann zeigt er nix an.

Ganz verstehen tu ich das nicht?!?!

Ihr etwa?

Stefan
 
Zuletzt bearbeitet:
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
:confused ?? ist logisch oder, wo nix is, kann nix angezeigt werden :)

hast du repaint und repaintobject schon versucht?
Man bist du schnell!!!

Ich hat grad meinen Beitrag geändert, weil genau diese Stelle irgendwie "confused" war. Schau mal auf die Uhrzeit meiner Änderung und deiner Antwort. Beide: 12:35.

Wie du siehst habe ich repaint sogar benutzt. repaintobject kann er allerdings nicht finden.

Stefan
 
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
Objekt unterstützt diese Eigenschaft oder Methode nicht, wenn ich folgendes eingebe:
Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    Forms("FRM_Komponenten").Repaint
    Forms("FRM_Komponenten").UF_FRM_Ticket.Repaint
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
End Sub
Nur bei dieser Möglichkeit meckert er nicht:
Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    Forms("FRM_Komponenten").Form.Repaint
    Forms("FRM_Komponenten").UF_FRM_Ticket.Form.Repaint
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
End Sub
Aber egal wie...Ich muss im Hauptformular (mit diesem UF) erst einen DS vorblättern und wieder zurückblättern, damit mir das gerade erzeugte Ticket im UF angezeigt wird.

Stefan
 
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.376
Standort
in der Nähe eines Rechners
Aber egal wie...Ich muss im Hauptformular (mit diesem UF) erst einen DS vorblättern und wieder zurückblättern,
Dann musst du den Computer hereinlegen mit einem Zusatzbefehl :D

DoCmd.GoToRecord acDataForm, FormName, acFirst
DoCmd.GoToRecord acDataForm, FormName, acLast

Damit macht er ein manuelles refresh weil er zum ersten und letzten Datensatz springt.

Könnte sein, dass der Befehl in 2007 etwas anders ausschaut. Aber funktionieren tut es sicher :D
 
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
Hab deinen Tipp mal umgesetzt:
Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
    
    If Forms("FRM_Komponenten").CurrentRecord = 1 Then
        DoCmd.GoToRecord acDataForm, "FRM_Komponenten", acNext
        DoCmd.GoToRecord acDataForm, "FRM_Komponenten", acPrevious
    Else
        DoCmd.GoToRecord acDataForm, "FRM_Komponenten", acPrevious
        DoCmd.GoToRecord acDataForm, "FRM_Komponenten", acNext
    End If
End Sub
Musste ich so machen, sonst kachelt der mir beim ersten DS ab.
Außerdem habe ich einen Gedankenfehler gefunden. Dass das "Schließen" erst NACH dem Aktualisieren kommen darf, war bei den Makros NICHT aber bei der Verwendung von VBA.

Da deine Idee anfangs immer noch funktionierte, habe ich den Schließen Befehl jetzt wieder hochgesetzt und siehe da...es funzt.

Ich sollte nun allerdings noch probieren, ob die vorher genannten Lösungen mit dieser Umstellung nun auch funktionieren.

Danke Euch

Stefan
 
froemken

froemken

SPONSOREN
Threadstarter
Mitglied seit
22.02.2005
Beiträge
1.138
Alter
40
Standort
Im Oberbergischen
Ich sollte nun allerdings noch probieren, ob die vorher genannten Lösungen mit dieser Umstellung nun auch funktionieren.
Und genau das habe ich nun getan...Code schaut so aus und funktioniert

Code:
Private Sub cmdExit_Click()
    DoCmd.Save acForm, "FRM_Ticket"
    DoCmd.Close acForm, "FRM_Ticket", acSavePrompt
    Forms("FRM_Komponenten")!UF_FRM_Ticket.Form.Requery
End Sub
Danke Euch

Stefan
 
Thema:

[gelöst] Access save und exit mit vba

Sucheingaben

access vba neuen datensatz speichern

,

datensaatz speichern vba

[gelöst] Access save und exit mit vba - Ähnliche Themen

  • [Gelöst] Access - Meldung umgehen

    [Gelöst] Access - Meldung umgehen: Hallo Leute, mein Problem heute, wenn ich eine gespeicherte Datenbank öffne, wie kann ich dann diese Meldung umgehen, die ich als Bild mit...
  • Gelöst 7.5.2007 - DSL Internet Access Problem

    Gelöst 7.5.2007 - DSL Internet Access Problem: Seitdem ich im Sept2006 einen Telekom 2Mb DSL Internet-Zugang benutze kann ich mich mit einem WindowsXP Acer Computer nicht mehr in eBay einloggen...
  • [gelöst] Datum berechnen in Access

    [gelöst] Datum berechnen in Access: Hallo Leute, ich habe eine "kleine" Access 2002 Datenbank. Diese hat u.a. mehrere Datumsfelder. Eines davon wird beim erstellen eines neuen...
  • Gelöst!!_Betrachterprogramm für Access 2000

    Gelöst!!_Betrachterprogramm für Access 2000: Hi, gibt es für Access einen Betrachter, wie Word, Excel und PowerPoint von Microsoft. Ich hab mal in der Schule 'ne Datenbank angelegt und die...
  • GELÖST [Gelöst] Fehler beim Aufruf einer Access-Datenbank

    GELÖST [Gelöst] Fehler beim Aufruf einer Access-Datenbank: Hallo Community, beim Aufrufen einer Access-Datenbank wird ein Kompilierungs-Fehler hervorgerufen. Betriebssystem ist Windows 2000, SP4, neueste...
  • Ähnliche Themen

    • [Gelöst] Access - Meldung umgehen

      [Gelöst] Access - Meldung umgehen: Hallo Leute, mein Problem heute, wenn ich eine gespeicherte Datenbank öffne, wie kann ich dann diese Meldung umgehen, die ich als Bild mit...
    • Gelöst 7.5.2007 - DSL Internet Access Problem

      Gelöst 7.5.2007 - DSL Internet Access Problem: Seitdem ich im Sept2006 einen Telekom 2Mb DSL Internet-Zugang benutze kann ich mich mit einem WindowsXP Acer Computer nicht mehr in eBay einloggen...
    • [gelöst] Datum berechnen in Access

      [gelöst] Datum berechnen in Access: Hallo Leute, ich habe eine "kleine" Access 2002 Datenbank. Diese hat u.a. mehrere Datumsfelder. Eines davon wird beim erstellen eines neuen...
    • Gelöst!!_Betrachterprogramm für Access 2000

      Gelöst!!_Betrachterprogramm für Access 2000: Hi, gibt es für Access einen Betrachter, wie Word, Excel und PowerPoint von Microsoft. Ich hab mal in der Schule 'ne Datenbank angelegt und die...
    • GELÖST [Gelöst] Fehler beim Aufruf einer Access-Datenbank

      GELÖST [Gelöst] Fehler beim Aufruf einer Access-Datenbank: Hallo Community, beim Aufrufen einer Access-Datenbank wird ein Kompilierungs-Fehler hervorgerufen. Betriebssystem ist Windows 2000, SP4, neueste...
    Oben