Discussion:
Aktion: beim Löschen, Requery?
(zu alt für eine Antwort)
Klaus Derksen
2007-06-25 12:45:03 UTC
Permalink
Hallo NG,
meine User sollen einen Datensatz nicht mehr löschen können, ich möchte ihn
statt dessen nur verbergen.

Ablage = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
If MsgBox("Wirklich löschen?", vbQuestion + vbYesNo) = vbNo Then
Cancel = True
Ablage = 0

Else
Cancel = True
' requery funkt nicht
'End If

Da ich die Datensätze über eine Abfrage "Ablage = 0" bekomme, erscheint der
Datensatz nicht mehr. Leider erneuert sich die Abfrage mit requery nicht
sofort, so dass der Datensatz nicht sofort verschwindet, so als wenn er
gelöscht worden wäre.
Gibt es einen Weg die Aktion abzuschließen und den Datensatz sofort
"verschwinden" zu lassen?

Gruß Klaus
Mark Doerbandt
2007-06-25 13:07:10 UTC
Permalink
Hallo, Klaus,
Post by Klaus Derksen
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
was tut das?
Post by Klaus Derksen
' requery funkt nicht
wo steht denn genau das Requery?

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Klaus Derksen
2007-06-25 13:24:33 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Hallo, Klaus,
Post by Klaus Derksen
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
was tut das?
Post by Klaus Derksen
' requery funkt nicht
wo steht denn genau das Requery?
Gruss - Mark
Ablage = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
If MsgBox("Wirklich löschen?", vbQuestion + vbYesNo) = vbNo Then
Cancel = True
Ablage = 0
Else
Cancel = True
' requery funkt nicht <<<<<<<<<<<< genau an diese Stelle
'End If
Mark Doerbandt
2007-06-25 13:52:51 UTC
Permalink
Hallo, Klaus,
Post by Klaus Derksen
Post by Mark Doerbandt
Post by Klaus Derksen
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
was tut das?
unbeantwortet
Post by Klaus Derksen
Post by Mark Doerbandt
Post by Klaus Derksen
' requery funkt nicht
wo steht denn genau das Requery?
' requery funkt nicht <<<<<<<<<<<< genau an diese Stelle
da sehe ich nur eine Kommentarzeile.

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Klaus Derksen
2007-06-26 10:44:14 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Post by Klaus Derksen
Post by Mark Doerbandt
Post by Klaus Derksen
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
was tut das?
unbeantwortet
Post by Klaus Derksen
Post by Mark Doerbandt
Post by Klaus Derksen
' requery funkt nicht
wo steht denn genau das Requery?
' requery funkt nicht <<<<<<<<<<<< genau an diese Stelle
da sehe ich nur eine Kommentarzeile.
na, genau in dieser Zeile:

Ablage = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
If MsgBox("Wirklich löschen?", vbQuestion + vbYesNo) = vbNo Then
Cancel = True
Ablage = 0
Else
Cancel = True
docmd.Requery
End If

Gruß Klaus
Mark Doerbandt
2007-06-26 10:50:42 UTC
Permalink
Hallo, Klaus,
Post by Klaus Derksen
docmd.Requery
aha - und was passiert bei Me.Requery?

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Klaus Derksen
2007-06-26 11:39:33 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Hallo, Klaus,
Post by Klaus Derksen
docmd.Requery
aha - und was passiert bei Me.Requery?
Gruss - Mark
--
Laufzeitfehler 3246
Operation in Transaktion nicht unterstüzt

Gruß Klaus
Mark Doerbandt
2007-06-26 11:47:05 UTC
Permalink
Hallo, Klaus,
Post by Klaus Derksen
Operation in Transaktion nicht unterstüzt
wo kommt denn die Transaktion her?

Wo genau steht denn Dein ganzer Code?

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Jörg Ackermann
2007-06-26 11:57:01 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Post by Klaus Derksen
Operation in Transaktion nicht unterstüzt
wo kommt denn die Transaktion her?
Die Transaktion wird intern von Access gestartet, um
die temporäre Tabelle mit den gelöschten Datensätzen
zu erstellen.

In den OnDelete, OnBeforeDelConfirm u. OnAfterDelConfirm
ist ein Form.Requery unmöglich.

Lösung: zB. ein Timer.
Siehe mein anderes Posting.

Gruß
Mark Doerbandt
2007-06-26 12:02:52 UTC
Permalink
Hallo, Acki,
Post by Jörg Ackermann
Die Transaktion wird intern von Access gestartet, um
die temporäre Tabelle mit den gelöschten Datensätzen
zu erstellen.
In den OnDelete, OnBeforeDelConfirm u. OnAfterDelConfirm
ist ein Form.Requery unmöglich.
deshalb meine Frage nach der Stelle, wo der Code steht.
Post by Jörg Ackermann
Lösung: zB. ein Timer.
Siehe mein anderes Posting.
Oh, da habe ich wohl ein (gedankliches) Synch-Problem gehabt. ;-)

Obwohl Timer immer unschön sind.

Gruss - Mark
Klaus Derksen
2007-06-26 12:00:39 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Post by Klaus Derksen
Operation in Transaktion nicht unterstüzt
wo kommt denn die Transaktion her?
Wo genau steht denn Dein ganzer Code?
Gruss - Mark
Er kommt aus der Löschaktion.
Das gesamte Modul lautet:

Private Sub Form_Delete(Cancel As Integer)
Ablage = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
If MsgBox("Wirklich löschen?", vbQuestion + vbYesNo) = vbNo Then
Cancel = True
Ablage = 0

Else
Cancel = True
docmd.reqery
End If
end sub

Gruß Klaus
Mark Doerbandt
2007-06-26 12:17:01 UTC
Permalink
Hallo, Klaus,
Post by Jörg Ackermann
Private Sub Form_Delete(Cancel As Integer)
ok, dann gilt das von Acki geschriebene. Hast Du denn seine
Timer-Loesung schon mal ausprobiert?

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Klaus Derksen
2007-06-26 12:25:07 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Timer-Loesung schon mal ausprobiert?
Gruss - Mark
--
Ja, funkt eigentlich ganz gut. Ich werd sie nehmen. Dank auch an Jörg.

Klaus
Jörg Ackermann
2007-06-26 12:31:40 UTC
Permalink
Hallo Klaus,
Post by Klaus Derksen
Ja, funkt eigentlich ganz gut.
...solange nicht mehrere DS markiert und gelöscht
werden.

Gruß

Stefan Hoffmann
2007-06-25 13:46:09 UTC
Permalink
hallo Klaus,
Post by Klaus Derksen
meine User sollen einen Datensatz nicht mehr löschen können, ich möchte ihn
statt dessen nur verbergen.
Im BeforeDelete das Cancel setzen und eine UPDATE abschicken.


mfG
--> stefan <--
--
Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm
Jörg Ackermann
2007-06-25 14:14:30 UTC
Permalink
Hallo Klaus,
Post by Klaus Derksen
meine User sollen einen Datensatz nicht mehr löschen können, ich
möchte ihn statt dessen nur verbergen.
Ablage = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
If MsgBox("Wirklich löschen?", vbQuestion + vbYesNo) = vbNo Then
Cancel = True
Ablage = 0
Else
Cancel = True
' requery funkt nicht
'End If
Da ich die Datensätze über eine Abfrage "Ablage = 0" bekomme,
erscheint der Datensatz nicht mehr. Leider erneuert sich die Abfrage
mit requery nicht sofort, so dass der Datensatz nicht sofort
verschwindet, so als wenn er gelöscht worden wäre.
Gibt es einen Weg die Aktion abzuschließen und den Datensatz sofort
"verschwinden" zu lassen?
Ich sehe nur diese Möglichkeit:


Private Sub Form_Delete(Cancel As Integer)

If MsgBox("Löschenß", vbYesNo) = vbYes Then
Me!Ablage = True
Me.Dirty = False
Me.TimerInterval = 50
End If

Cancel = True

End Sub

Private Sub Form_Timer()
Me.Requery
Me.TimerInterval = 0
End Sub

Gruß
Lesen Sie weiter auf narkive:
Loading...