Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Me.Undo funktioniert nicht richtig
Gehe zu Seite 1, 2  Weiter
zurück: Datum mit Radiobutton setzen weiter: Unterformulare verknüpfen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Okt 2009, 17:22
Rufname:
Wohnort: Berlin

Me.Undo funktioniert nicht richtig - Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo,

ich habe ein Formular, in dem der Nutzer verschiedene Optionen einstellen kann. Das Formular enthält Textfelder und Checkboxen. Zusätzlich können verschiedene Farben eingestellt werden. Dazu zeige ich in einem Rechteck die entsprechende Farbe an und habe daneben ein unsichtbares Textfeld, in das ich nach Änderung den BackColorwert des Rechtecks mit folgender Prozedur schreibe:
Code:
Private Sub procFarbeClick(ctl As Control)
On Error GoTo procFarbeClick_Error
    Dim cFarbe As Long
   
    cFarbe = ShowColor1(ctl.BackColor)
    ctl.BackColor = cFarbe
    Me.Controls("c" & Right(ctl.Name, Len(ctl.Name) - 1)) = cFarbe
procFarbeClick_Exit:
    On Error GoTo 0
    Exit Sub
procFarbeClick_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description _
         & ") in procedure procFarbeClick of VBA Dokument Form_fOptionen"
    Resume procFarbeClick_Exit
End Sub
Das Rechteck (ctl) heißt z.B. rText, das dazugehörige Textfeld cText.

Außerdem habe ich auf dem Formular einen Abbruch-Button, mit dem die Werte zurückgesetzt werden sollen:
Code:
Private Sub pbAbbr_Click()
    Me.Undo
    DoCmd.Close acForm, Me.Name, acSaveNo
End Sub
Für die Textboxen und Checkboxen funktioniert das auch einwandfrei, aber die Farben lassen sich nicht zurücksetzen. Liegt das daran, dass die per VBA gesetzt werden? - In der Prozedur procFarbeClick ist der Wert für OldValue noch richtig, vor Undo im Abbruch-Button ist OldValue allerdings schon auf den neuen Wert geändert.

Was kann ich tun?

Danke Rita

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
MissPh!
Office-VBA-Programmiererin


Verfasst am:
12. Okt 2009, 00:02
Rufname:
Wohnort: NRW


AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo Rita,

zunächst einmal: die "Sub procFarbeClick(ctl As Control) " sollte wohl besser eine Function sein.

Dann wäre evtl. noch die Frage wo/wie/wann diese aufgerufen wird.

_________________
Gruß MissPh!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
13. Okt 2009, 18:21
Rufname:
Wohnort: Berlin

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Ich lade mal das Formular hoch, dann wird es besser verständlich.
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke



Optionen.zip
 Beschreibung:

Download
 Dateiname:  Optionen.zip
 Dateigröße:  46.3 KB
 Heruntergeladen:  14 mal

MiLie
kein Office- VBA- Programmierer


Verfasst am:
13. Okt 2009, 19:53
Rufname: Micha
Wohnort: Chemnitz

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo,
kann leider 2007 nicht öffnen, die meisten hier haben "nur" 2003.

ich verstehe nicht, warum du die Farbe in den versteckten Textfeld nocheneinmal ablegst. Was hat das für einen Sinn, die Farbe kannst du doch immer neu abfragen, wäre es nicht besser die "alte" Farbe dort abzulegen? somit kannst du auf die alte Farbe wieder zugreifen.Warum oldvalue nicht mehr den alten wert enthält kann ich nur erklären, dass du ein UForm hast, und du zwischen UF und HF wechselst, da wird gespeichert.
Zur eigentlichen Frage, die Farbänderung m.E. nicht mit im Undo enthalten, du musst gezielt die Farbe wieder rückändern. Nach deinen Code schließt du das Form doch eh, daher sollte beim neuen öffnen ohnehin wieder die alte Farbe enthalten sein. Du musst also irgendwo speichern.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
MissPh!
Office-VBA-Programmiererin


Verfasst am:
13. Okt 2009, 20:43
Rufname:
Wohnort: NRW


AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo,

um es noch einmal ganz klar zu sagen: Undo sorgt für das Zurücksetzen von Eingaben in gebundene Steuerelemente, mehr nicht.

Die per VBA gesetzten Steuerelement-Eigenschaften werden so oder so nicht gespeichert, das geht nur im / über den Entwurfsmodus.

_________________
Gruß MissPh!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Okt 2009, 14:23
Rufname:
Wohnort: Berlin

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Ich habe gerade meine DB nach Acc2003 konvertiert, um diese Version nochmal hochzuladen. Dabei habe ich festgestellt, dass es sich wohl um ein spezielles 2007er Problem handelt. Selbst wenn ich die konvertierte DB in Acc 2007 öffne, funktioniert es plötzlich richtig.

Ich speichere ja eben die Farbe in einem gebundenen Textfeld, damit Undo funktioniert und damit ich beim Öffnen des Formulars das Rechteck mit der Farbe richtig anzeigen kann.
Ich werde mal doch die 2003er Version hochladen, vielleicht hast Du dann eine Idee, wie ich es vereinfachen kann. Also wie gesagt: in 2003 funktioniert meine Version auch.

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke



Optionen.zip
 Beschreibung:
Optionen-Formular in Access2003

Download
 Dateiname:  Optionen.zip
 Dateigröße:  34.62 KB
 Heruntergeladen:  16 mal

MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Okt 2009, 15:25
Rufname:
Wohnort: NRW

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Es wurde glaube ich bereits erwähnt: Das Zurücksetzen der Farben kann nur gehen, wenn du dir den alten Wert irgendwo merkst.
_________________
Gruß MissPh!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Okt 2009, 18:58
Rufname:
Wohnort: Berlin

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

So, jetzt habe ich noch zusätzliche ungebundene Steuerelemente definiert, in denen der alte Wert gespeichert wird. Und so funktioniert es jetzt auch. Trotzdem finde ich es seltsam, dass es in der 2003er Version auch ohne die alten Werte funktioniert hat. - Welche der Versionen enthält denn nun einen Bug.

Jedenfalls vielen Dank für Deine Hilfe.

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Okt 2009, 19:57
Rufname:
Wohnort: NRW

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Willst du damit sagen, dass die Änderung der Hintergrundfarbe mit Undo rückgängig zu machen ist/war?
_________________
Gruß MissPh!
MiLie
kein Office- VBA- Programmierer


Verfasst am:
14. Okt 2009, 20:18
Rufname: Micha
Wohnort: Chemnitz

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo,

die Änderung der Farbe geht damit nicht rückgängig, da aber das Form mit den Cancel-Button geschlossen wird, bekommt man es nicht mit, beim neu öffnen, werden die Farben aus den Textfeldern gelesen und eingestellt. Das hinterlässt den Eindruck eines Rückgängigmachen.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Okt 2009, 22:03
Rufname:
Wohnort: NRW

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hi, das ist natürlich eine Erklärung, aber ob das so gemeint war...?

Mit folgender Erweiterung klappt schließlich auch das Zurücksetzen der Hintergrundfarben:
Code:
Private Sub pbAbbr_Click()
    Me.Undo
    Form_Load
   ' DoCmd.Close acForm, Me.Name, acSaveNo
End Sub

_________________
Gruß MissPh!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Okt 2009, 22:27
Rufname:
Wohnort: Berlin

Re: AW: Me.Undo funktioniert nicht richtig - Re: AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

MissPh! - 14. Okt 2009, 19:57 hat folgendes geschrieben:
Willst du damit sagen, dass die Änderung der Hintergrundfarbe mit Undo rückgängig zu machen ist/war?


In der 2003er Version ging es, in der 2007er nicht!

Zitat:
die Änderung der Farbe geht damit nicht rückgängig, da aber das Form mit den Cancel-Button geschlossen wird, bekommt man es nicht mit, beim neu öffnen, werden die Farben aus den Textfeldern gelesen und eingestellt. Das hinterlässt den Eindruck eines Rückgängigmachen.


Verstehe ich nicht ganz, die Textfelder lesen die Farbe aus der Tabelle, da sie gebunden sind. Und darauf kommt es mir schließlich an: Dass in der Tabelle die Farben gespeichert sind, die der Kunde in einem anderen Formular angezeigt haben will.

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Okt 2009, 22:42
Rufname:
Wohnort: NRW

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Liebe Rita, von dem anderen Formular wissen wir aber doch gar nichts! Confused

In dem von dir hochgeladenen Beispiel ist es doch so, dass nach Änderung von Farbeinstellungen mit dem Cancel-Button lediglich die Farbwerte in den gebundenen Steuerelementen zurückgesetzt werden, nicht aber die Hintergründe der Farbmuster-Steuerelemente. Das fällt aber nicht weiter auf, da das Formular sofort geschlossen wird. Das ist es, was Micha (MiLie) meinte.

Wenn ich dich noch einmal an die Eingangsfrage erinnern darf:
Zitat:
Für die Textboxen und Checkboxen funktioniert das auch einwandfrei, aber die Farben lassen sich nicht zurücksetzen. Liegt das daran, dass die per VBA gesetzt werden?
Nun liest sich die Sache plötzlich ganz anders - kannst du das erklären oder fehlt es mir an Durchblick?
Was machst du denn nun mit OldValue? Entspricht dein Demo-Beispiel vielleicht nicht ganz dem tatsächlichen Ablauf??

_________________
Gruß MissPh!
MiLie
kein Office- VBA- Programmierer


Verfasst am:
14. Okt 2009, 23:07
Rufname: Micha
Wohnort: Chemnitz

AW: Me.Undo funktioniert nicht richtig - AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Hallo Rita,

ist ja richtig, es ging nur darum, dass die Hintergrundfarben mit Undo keine Berücksichtigung finden, du hast es ja durch deine versteckten Felder gelöst, indem du die Farben dort ablegst. Das geht aber nur, weil du mit den Rückgängigmachen gleichzeitig das Form schließt. Du kannst ja mal Undo ausführen, ohne das Form zu schließen (im Menü der Button mit den gebogenen Pfeil nach links, geht aber nur wenn die Felder sichtbar sind) oder die Befehlszeile rauskommentieren. Dann werden zwar die Felder rückgängig gemacht aber die Farben bleiben. Deine Lösung ist eine Variante, die für dich ausreichend ist und somit für dich gut ist. Nur willst du mal rückgängig machen ohne das Form zu schließen, werden die Faben nicht stimmen, dann musst du die Sub Form_load, wie missph in ihren letzten Beitrag geschrieben hat aufrufen, oder die schleife die du im Loadereignis zum setzen der Farbe hast neu aufrufen, die Farben also neu auf die alten Werte setzen.

Warum deine versteckten Felder in 2007 nicht rückgängig gemacht werden kann ich nicht nachvollziehen, da ich kein 2007 habe Ich kann mir aber nicht vorstellen dass es ein 2007-Bug ist, die Undo-Funktion wird allgemein sehr oft genutzt, das wäre hier im Forum schon öfters angefragt wurden.

Missph wollte nur rüberbringen, dass Formulareigenschaften, die man in einen offenen Formular ändert nicht gespeichert werden, dazu gehören auch Hintergrundfarben. Weiter wollte sie sagen, dass Undo nur Auswirkung auf den Feldinhalt gebundener Felder hat. Wenn du Formulareigenschaften ändern möchtest, muss das Formular in der Entwurfsansicht geöffnet werden, das geht auch per VBA, und damit es nicht auffällt kann man es versteckt (hidden) öffnen. Änderst du jetzt und speicherst beim Schließen, sind die geänderten Farben in den Controls gespeichert und du benötigst dafür keine Tabellenfelder, die du verstecken musst. Dazu musst du einfach beim schließen das form versteckt eventuell auch ohne Bildschirmaktualisierung öffnen, die Farben (die du in Variablen hinterlegen kannst) ggf. nochmal zuweisen und mit speichern schließen. Für deinen Cancel-Button schließt du einfach das Form, ohne etwas zu machen.

wenn du Interesse hast, kann ich dir das kurz umändern.

Edit: dein Form dient wohl lediglich als "Einstellungsform" für die gesamte DB, daher ist deine Art, mit speichern in den Textfeldern wohl die praktikabelste

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten


Zuletzt bearbeitet von MiLie am 14. Okt 2009, 23:39, insgesamt einmal bearbeitet
MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Okt 2009, 23:21
Rufname:
Wohnort: NRW


Re: AW: Me.Undo funktioniert nicht richtig - Re: AW: Me.Undo funktioniert nicht richtig

Nach oben
       Version: Office 2007

Sorry Micha, aber ich denke, deine Vermittlungsversuche sind gar nicht nötig:
MiLie - 14. Okt 2009, 23:07 hat folgendes geschrieben:
Missph wollte nur rüberbringen, dass formulaeigenschaften, die man in einen offenen Formular ändert nicht gespeichert werden, dazu gehören auch Hintergrundfarben. Weiter wollte sie sagen, dass Undo nur Auswirkung auf den Feldinhalt gebundener Felder hat.

Ich denke, ich habe es rübergebracht und ich habe es gesagt! Very Happy

_________________
Gruß MissPh!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Umsätze kumulieren - DSUM funktioniert nicht 1 Benicio 3234 10. Sep 2007, 18:11
Shai Umsätze kumulieren - DSUM funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage letzter Wert nicht richtig 2 Hilde71 582 01. Sep 2007, 04:36
Hilde71 Auswahlabfrage letzter Wert nicht richtig
Keine neuen Beiträge Access Tabellen & Abfragen: Update-Abfrage funktioniert nicht richtig 2 Kelley1995 507 05. Jul 2007, 16:00
Kelley1995 Update-Abfrage funktioniert nicht richtig
Keine neuen Beiträge Access Tabellen & Abfragen: Warum funktioniert diese Abfrage nicht ? 6 Mirage 804 05. Jun 2007, 12:14
Mirage Warum funktioniert diese Abfrage nicht ?
Keine neuen Beiträge Access Tabellen & Abfragen: Formularbasierte Abfrage funktioniert nicht 1 Rob-Bln 610 11. Mai 2007, 15:51
JörgG Formularbasierte Abfrage funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage funktioniert nicht...hilfe!!!!! 2 bennie103 603 22. März 2007, 21:14
Gast Abfrage funktioniert nicht...hilfe!!!!!
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit Kriterien richtig erstellen? 9 IV 2811 22. März 2007, 10:50
IV Abfrage mit Kriterien richtig erstellen?
Keine neuen Beiträge Access Tabellen & Abfragen: SQL In mit mehreren Werten funktioniert nicht 5 lullus 702 30. Jan 2007, 20:53
jens05 SQL In mit mehreren Werten funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterium funktioniert nicht!!! 5 christoph.1982 680 25. Jan 2007, 22:18
Nouba Kriterium funktioniert nicht!!!
Keine neuen Beiträge Access Tabellen & Abfragen: Beziehung mit verknüpfter Tabelle funktioniert nicht 4 Thom@s 680 09. Dez 2006, 16:15
Thom@s Beziehung mit verknüpfter Tabelle funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze werden nicht richtig gefiltert 10 sandrolang 713 02. Okt 2006, 16:50
jens05 Datensätze werden nicht richtig gefiltert
Keine neuen Beiträge Access Tabellen & Abfragen: Aktualisierungsabfrage funktioniert nicht. 1 Lady_S 622 18. Sep 2006, 19:10
rita2008 Aktualisierungsabfrage funktioniert nicht.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Forum