Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Anweisung unterdrücken wenn andere Anweisung ausgeführt wird
zurück: Datenbank wiederherstellen weiter: Formular bearbeiten trotz PW-Schutz 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
Access-Neuling2
Gast


Verfasst am:
26. März 2014, 11:46
Rufname:

Anweisung unterdrücken wenn andere Anweisung ausgeführt wird - Anweisung unterdrücken wenn andere Anweisung ausgeführt wird

Nach oben
       Version: Office 2010

Hallo Zusammen,

ich versuche gerade verzweifelt ein Problem zu lösen und komm einfach nicht weiter, hoffe ihr könnt mir helfen.
  1. Ich habe ein Formular mit Startseite-Button und Beenden-Button.
  2. Im Formular werden Projekte angelegt.
  3. Ein Projekt darf nur einmal vorkommen.
  4. Formular soll nicht automatisch speichern (Ich habe eine Fehlermeldung generiert die beim klicken auf den Startbutton nicht zurück geht wenn der Name schon vorhanden ist, aber wenn es automatisch speichert ist er ja dann schon vorhanden für access)
Ich habe eine Befor Update Anwesung:
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.Dirty = True Then
        If MsgBox("Sollen die Änderungen gespeichert werden?" _
                , vbYesNoCancel + vbQuestion) = vbNo Then
            Me.Undo
            Exit Sub
          ElseIf MsgBox("Sollen die Änderungen gespeichert werden?" _
                      , vbYesNoCancel + vbQuestion) = vbCancel Then
            Me.Projektn.SetFocus
        End If
    End If
End Sub
Eine beenden_click-Anweisung+ das selbe beim Startbutton_click:
Code:
Private Sub Beenden_Click()
    If IsNull(Forms!PflegeProjekt) Then
        DoCmd.OpenForm "Start", acNormal
        DoCmd.Close acForm, "PflegeProjekt"
      ElseIf IsNull(Me.Projektn) And _
            (Len(Me.Projektbe) > 0 Or Len(Me.t2) > 0 Or _
             Len(Me.Titel_1) > 0 Or Len(Me.GJ) > 0 Or Len(Me.P) > 0 Or _
             Len(Me.t1) > 0 Or Len(Me.Tech_NS) > 0 Or Len(Me.Bei_1) > 0 Or _
             Len(Me.Titel_2) > 0 Or Len(Me.Ka_NS) > 0) Then
        MsgBox ("Sie haben keinen Projektnamen eingegeben.")
        Projektn.SetFocus '<== Setzt Maus auf Projektname
        Select Case MsgBox("Sollen die Änderungen gespeichert werden?" _
                         , vbYesNoCancel + vbQuestion)
          Case vbNo
            DoCmd.Close acForm, "PflegeProjekt" '<== Schließt das Formular ohne zu speichern
            DoCmd.OpenForm "Start", acNormal
          Case vbCancel
            Projektn.SetFocus '<== Bleibt im Formular und setzt Maus auf Projektname
        End Select
      Else
        DoCmd.OpenForm "Start", acNormal
        DoCmd.Close acForm, "PflegeProjekt"
    End If
End Sub
Nun ist es so wenn ich auf den Startbutton oder den x Button drücke, kommt zweimal die Anweisung sollen die Änderungen gespeichert werden.

Ich geh davon aus das es ja einmal das beforupdate ist und einmal vom jeweiligen button.

Kann ich im Beforupdate irgenwie einbauen
Code:
If startbutton_click then exit sub
elseif beenden_click then exit sub
else
die anweisung?
hab keine ahnung ob das geht und wie ich das schreiben soll.

Vielen dank für die hilfe!
Nachtrag: Access_Neuling_2 am 26. März 2014 um 10:59 hat folgendes geschrieben:
Hm anscheinend liegt es nicht am beforupdate, da auch eine doppelte Frage beim klicken auf dem Speicherbutton kommt obwohl dieser mit einem Makro versehen ist ohne Meldung.

Hat jemand eine Idee wo das sonst herkommen kann?

diese Frage steht eigentlich nur in den Anwesungen die oben stehen Sad

Nachtrag: Access_Neuling_2 am 26. März 2014 um 11:07 hat folgendes geschrieben:
Ok Smile habs rausgefunden Smile

Wenn natürlich im Beforudate die msg zweimal steht macht er es auch zweimal Very Happy
Marmeladenglas
komme zurecht


Verfasst am:
26. März 2014, 12:10
Rufname:


AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Hi,
  1. zuwas brauchst du die Prozeduren überhaupt nochmal in deinen Button-Clicks ??
    1x im Before-Update Ereignis reicht doch !
  2. Code:
        DoCmd.Close acForm, "PflegeProjekt" '<== Schließt das Formular ohne zu speichern
    Wieso glaubst du das hier nicht gespeichert wird ??
  3. Code:
        If IsNull(Forms!PflegeProjekt)
    Was glaubst du hier zu prüfen ?
  4. Code:
        If Me.Dirty = True Then
            If MsgBox("Sollen die Änderungen gespeichert werden?"_
                    , vbYesNoCancel + vbQuestion) = vbNo Then
                Me.Undo
    hier sollte ein Cancel = TRUE, dazu um den Speichervorgang zu unterbinden
  5. Im BeforeUpdate hast du 2x die gleiche Nachfrage ???
Gast



Verfasst am:
26. März 2014, 12:22
Rufname:

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

zu 2.) Hier speichert es doch nicht, weil ich auf No klicke oder lieg ich da falsch? :O

zu 3.) will ich hier abfragen, wenn das Formular leer ist, also kein neuer Datensatz erstellt wurde soll es einfach schließen.

4.) ah ok danke Smile

5.) Das hab ich schon gefunden danke Smile
Nachtrag: Gast am 26. März 2014 um 11:30 hat folgendes geschrieben:
und zu 1.) stimmt, da brauch ich das nicht mehr.

könntest du mir da vllt noch helfen wie ich hier das vermeiden kann das gleiche Projektnamen gespeichert werden. bzw unbemerkt nicht gespeichert wird. (Da ich das in der Tabelle schon unterbunden habe.

Aber wenn ich jetzt auf start klicke gibt er keine Fehlermeldung an bei gleichem Projektnamen sondern schließt einfach wenn man auf ja klickt ohne das projekt wirklich abzuspeichern.

Hoffe du verstehst ungefähr was ich meine.

Vielen Dank Smile
MiLie
kein Office- VBA- Programmierer


Verfasst am:
26. März 2014, 18:46
Rufname: Micha
Wohnort: Chemnitz

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Hallo,

dein ganzer Prüfungscode kommt nur ins Before-Update, sonst nirgends.
Passt etwas an den Daten nicht, kannst Du das speichern abbrechen (Cancel auf True setzen). Auf Dirty brauchst du nicht zu prüfen, wenn before Update eintritt ist Dirty immer auf true (genau genommen löst Dirty das Before-update aus).

Um doppelte Projekte auszuschließen setze einen Index (ohne Duplikate) auf das Projektfeld, somit passt Access schon auf, oder du prüfst ebenfalls beim Before-Update mit Hilfe von DCount() <- Onlinehilfe verwenden -- ob das Projekt schon existiert. Kannst auch beides machen.
Achte aber darauf, dass beim Prüfen auf doppelte Projekte Dcount() auch dein aktuelles Projekt mitzählt, wenn es kein neuer Datensatz ist. Filtere auf deine aktuelle ID aus.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Access_Neuling_2
Gast


Verfasst am:
08. Apr 2014, 13:02
Rufname:


AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Access_Neuling_2 am 02. Apr 2014 um 15:07 hat folgendes geschrieben:
Hallo,

Vielen Dank dein Post hat mir sehr weitergeholfen und ich konnte das Problem lösen Smile

Hm also irgendwie funktioniert das jetzt immernoch nicht ganz... Sad

Das Programm läuft nicht durch das Befor Update durch bzw. wird immer nur das Form_Error angesprochen:
Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
   If DataErr = 3022 Then
        MsgBox "Der Dateiname existiert bereits." _
             & " Bitte verwenden Sie einen anderen!"
        Response = acDataErrContinue
        Projektname.SetFocus
    End If
    If IsNull(Me.Projektname) And _
       (Len(Me.Projektbeschreibung) > 0 Or Len(Me.t1) > 0 Or _
        Len(Me.Ti1) > 0) Then
        MsgBox "Bitte geben Sie einen Projektnamen ein."
        Me.Projektname.SetFocus
    End If
End Sub
Reihenfolge meines Problems: Projektname fehlt:
  1. Klick auf Startseite (Ist nun ein Makro)
  2. Soll gespeicher werden (JA/Nein)
  3. Ja->Msg"Bitte geben Sie einen Projektnamen ein."
  4. Access "Null-Wert in Index..."
  5. Msg"Bitte geben Sie einen Projektnamen ein."
  6. Access "Trotzdem schließen"
  7. Access "Makros stoppen?"
Soll:
  1. Klick auf Startseite (Ist nun ein Makro)
  2. Soll gespeicher werden (JA/Nein)
  3. Ja-> Msg"Bitte geben Sie einen Projektnamen ein."
  4. Projektname.SetFocus
und keine weiteren Msgboxen mehr.

Bei DataErr = 3022:
  1. Soll gespeicher werden (JA/Nein)
  2. Ja-> MsgBox "Der Dateiname existiert bereits. Bitte verwenden Sie einen anderen!"
  3. Projektname.Setfocus (So wie es sein soll)
Ich verstehe nicht warum, das bei dem anderen Befehl nicht funktioniert.
Ich hab schon so viel ausprobiert, dass ich mich selbst nicht mehr auskenne was ich nun brauche oder nicht...

Das Beforupdate ist zumindestens nicht was die MSgBoxen angeht angesprochen worden.
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.Dirty = True Then
        If MsgBox("Sollen die Änderungen gespeichert werden?" _
                , vbYesNoCancel + vbQuestion) = vbNo Then
            Me.Undo
            Cancel = True
            Exit Sub
            If IsNull(Forms!PflegeProjekt) Then
                DoCmd.OpenForm "Start", acNormal
                DoCmd.Close acForm, "PflegeProjekt"
              ElseIf IsNull(Me.Projektname) And _
                     (Len(Me.Projektbeschreibung) > 0 Or Len(Me.t1) > 0 Or _
                      Len(Me.Ti1) > 0) Then
                MsgBox "Sie haben keinen Projektnamen eingegeben."
                Me.Projektname.SetFocus '<== Setzt Maus auf Projektname
              Else
                DoCmd.OpenForm "Start", acNormal
                DoCmd.Close acForm, "PflegeProjekt"
            End If
        End If
    End If
End Sub
Gut ich weiß das ich das mit dem Projektnamen existiert nicht nur einmal benötige in meinem Code, aber wenn ich es bei error weglasse wird es auch nicht im Beforupdate angesprochen... und ich glaube, dass es durch zwei verscheidenen Fehlermeldungen dazu kommt, das die Textbox zweimal angezeigt wird. ich weiß nur nicht wie ich das besser machen soll.

Kann mir jemand helfen hier Struktur rein zu bringen und mir sagen was falsch ist bzw. wo mein Denkfehler ist?

Vielen Dank.
MiLie
kein Office- VBA- Programmierer


Verfasst am:
08. Apr 2014, 16:51
Rufname: Micha
Wohnort: Chemnitz

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

MiLie am 08. Apr 2014 um 16:26 hat folgendes geschrieben:
Hallo,

hast Du die Tipps gelesen? Auch z.B. was Marmeladenglas geschrieben hat? Zumindest darauf geantwortet hast Du nicht.

Du brichst das speichern zwar ab wenn man auf nein klickt, aber nicht wenn deine Bedingungen nicht stimmen. Dann wird gespeichert und ein Fehler kommt. Welcher Fehler wirklich kommt hast Du ja geschickt ausgeblendet.

Wenn deine Fehlernummer nicht 3022 ist, hätte es Sinn ihn anzuzeigen.

Hallo,

als Ansatz ungetestst
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Nz(Me.Projektname, "") = "" And _
       (Len(Me.Projektbeschreibung) > 0 Or Len(Me.t1) > 0 _
        Or Len(Me.Ti1) > 0) Then 'bei Len ... entzieht sich mir der Sinn
                                 'mache die Felder zu Pfichtpfeldern
        MsgBox "Sie haben keinen Projektnamen eingegeben."
        Me.Projektname.SetFocus '<== Setzt Maus auf Projektname
        Cancel = True
      Else
        If MsgBox("Sollen die Änderungen gespeichert werden?" _
                , vbYesNo + vbQuestion) = vbNo Then
            Me.Undo
            Cancel = True
          Else
            If DDcount("*", "DeineTabelle" _
                     , "Projektname = '" & Me.Projektname & "'" _
                & " AND IDFeld <> " & Me.IDFeld) > 0 Then
                MsgBox "Der Projektnamename existiert bereits. " _
                     & "Bitte verwenden Sie einen anderen!"
                Me.Projektname .SetFocus
                Cancel = True
            End If
        End If
    End If
End Sub
IDFeld im Code durch dein Primärschlüsslfeld ersetzen! DeineTabelle durch deinen Tabellennamen ersetzen!
_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Access_Neuling_2
Gast


Verfasst am:
09. Apr 2014, 08:28
Rufname:

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Vielen vielen Dank, du hast mir sehr geholfen!
Jetzt funktioniert es wie es soll.

Nur bekomm ich immernoch eine Fehlermeldung von Access (Der Datensatz kann momentan nicht gespeichert werden.... Soll es trotzdem beendet werden?)
+
Makro anhalten Meldung
Gibt es da eine Möglichkeit diese zu unterdrücken, oder ist das nicht sinnvoll?

Vielen vielen Dank nochmal!!!!
MiLie
kein Office- VBA- Programmierer


Verfasst am:
09. Apr 2014, 17:06
Rufname: Micha
Wohnort: Chemnitz

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Hallo,

die Meldung kommt wenn du abbrichst? kann ich mir schwer vorstellen.

Von welchen Makro redest Du, hast Du extra noch Makros laufen?

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Access_Neuling_2
Gast


Verfasst am:
14. Apr 2014, 11:40
Rufname:

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Die Meldung kommt wenn ich auf Start Klicke (Button der wieder auf das Startformular springt) klicke und eines der beiden Fehlermeldungen aufflopp. (Datensatz schon vorhanden oder Projektname leer) Nach diesem Fenster kommt "...das Access kann nicht gespeichert werden soll trotzdem geschlossen werden?..." Nach diesem Fenster wenn man auf Nein klickt (Weil man ja noch im Formular das Feld Projektname bearbeiten muss) kommt das Fenster mit "Makros abbrechen" Da meine Buttons mit Makros erstellt worden sind. (StartButton Speichern etc)

Wie kann ich nun verhindern das Access frägt ob es trotzdem geschlossen werden soll und wie kann ich verhindern das das Makrofenster aufgeht?
Gast



Verfasst am:
14. Apr 2014, 19:10
Rufname:

AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Hallo,

dazu kann ich wenig sagen, da ich a) Makros nicht kenne ( sollte man auch nicht nehmen) und b) nicht weiß was "Button der wieder auf das Startformular springt" bedeutet. ein Speicherbutton hat wenig Sinn, da Du das "speichern" ohnehin nur schwer beeinflussen kannst. Jedes Schließen eines Formulars speichert automatisch.
Aus meiner Sicht reicht ein Button um das Form zu schließen. Mehr sollte nicht notwendig sein.
Access_Neuling_2
Gast


Verfasst am:
15. Apr 2014, 08:35
Rufname:


AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt - AW: Anweisung unterdrücken wenn andere Anweisung ausgeführt

Nach oben
       Version: Office 2010

Ok Danke. Dann lass ich es mal so. Sind zwar zwei klicks mehr, aber ich denke der Fall kommt eh nicht so oft vor. Hoffe ich zumindest.

Also Danke an alle für die Hilfe.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
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: Syntaxfehler bei SQL Anweisung 12 Luzifon 210 14. März 2013, 21:01
Marmeladenglas Syntaxfehler bei SQL Anweisung
Keine neuen Beiträge Access Tabellen & Abfragen: #Fehler in Abfrage unterdrücken 3 moebiusband 506 15. Sep 2011, 14:09
moebiusband #Fehler in Abfrage unterdrücken
Keine neuen Beiträge Access Tabellen & Abfragen: Syntaxfehler in Insert Into Anweisung 4 keksmobsi 500 28. Apr 2011, 20:08
keksmobsi Syntaxfehler in Insert Into Anweisung
Keine neuen Beiträge Access Tabellen & Abfragen: SQL-Abfrage wird nicht richtig ausgeführt 5 Abfrager 302 02. Dez 2010, 13:25
Abfrager SQL-Abfrage wird nicht richtig ausgeführt
Keine neuen Beiträge Access Tabellen & Abfragen: fehler in insert into anweisung 3134? 4 ptuser 490 29. Okt 2010, 10:06
ptuser fehler in insert into anweisung 3134?
Keine neuen Beiträge Access Tabellen & Abfragen: Syntax Error bei UPDATE Anweisung VBA-SQL 1 Gast 1941 11. März 2010, 15:27
Gast Syntax Error bei UPDATE Anweisung VBA-SQL
Keine neuen Beiträge Access Tabellen & Abfragen: If ANWEISUNG in Abfrage 4 Uwe_l 912 09. Feb 2010, 14:17
Uwe_l If ANWEISUNG in Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage wird nicht ausgeführt 1 maila 1640 03. Aug 2009, 11:52
Gast Abfrage wird nicht ausgeführt
Keine neuen Beiträge Access Tabellen & Abfragen: Syntax UPDATE Anweisung 1 Olaf62 713 07. Mai 2009, 12:39
Marmeladenglas Syntax UPDATE Anweisung
Keine neuen Beiträge Access Tabellen & Abfragen: If Anweisung 1 ayhan 505 02. März 2009, 11:19
KlausMz If Anweisung
Keine neuen Beiträge Access Tabellen & Abfragen: Überfordert beim bilden der SQL Anweisung, bitte helft mir 1 WickedPit 295 17. Feb 2009, 18:19
MAPWARE Überfordert beim bilden der SQL Anweisung, bitte helft mir
Keine neuen Beiträge Access Tabellen & Abfragen: Importfehler unterdrücken 2 sonixxl 2024 13. März 2008, 11:12
Zed2k Importfehler unterdrücken
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project