Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Zu vorherigem DS in Formular springen
zurück: ID (Feldinhalt) bei neuem Datesatz übernehmen weiter: Positionen automatisch nummerieren 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
SebastianB.
interessierter noob


Verfasst am:
10. Mai 2010, 10:16
Rufname:

Zu vorherigem DS in Formular springen - Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

Hi,
finde beim suchen zwar, wie man mit hilfe von schaltflächen in formularen vor- und zurück springt, um sich datensätze anzeigen lassen zu können. was ich aber nicht finde ist folgendes:

ich habe einen datensatz und stelle fest, dass ich ihn nicht mehr brauche. das heißt, ich will ihn löschen und mein formular soll dann auf den vorherigen zurückspringen. ich habe keine fortlaufende id, sondern autowert, weshalb ich nicht danach suchen kann.

mein plan war folgender:
die aktuelle datensatznummer mit me.currentrecord auslesen lassen. den datensatz löschen und dann zum ds me.currentrecord - 1 springen

mein code sieht wie folgt aus:
Code:

Private Sub cmdDelete_Click()
Dim rst As Recordset
Dim nummer As Integer


nummer = Me.CurrentRecord
nummer = nummer - 1

Set rst = Me.Recordset.Clone

If MsgBox("Risiko löschen?", vbYesNo, "") = vbYes Then

    rst.Bookmark = Me.Bookmark
    rst.Delete
    rst.Close
    Me.Requery
End If
End Sub


kann mir jemand sagen, wie man einfach zum ds "nummer" kommt?

grüße
Sebastian
GuyIncognito
Man wächst an seinen Aufgaben ^^


Verfasst am:
10. Mai 2010, 10:22
Rufname:


AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

FAQ 4.5 Gleicher Datensatz nach Requery
ich denke das sollte dir weiter helfen, musst eigentlich nur ID mit nummer ersetzen und bei lngstore = Me!Nummer-1 eingeben.
(PS: eine ID ist eigentlich nichts anderes als ein autowert)
KlausMz
Moderator Access


Verfasst am:
10. Mai 2010, 10:28
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

Hallo,
gleicher Datensatz nach Requery nutz hier nichts, denn der gleiche Datensatz ist ja gelöscht, also kann er nicht angeprungen werden, da gar nicht mehr vorhanden.
Es muss der Datensatz angesprungen werden, dessen ID (Autowert) kleiner ist als der gelöschte DS. Unter der Vorraussetzung, dass nach der ID sortiert ist.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
GuyIncognito
Man wächst an seinen Aufgaben ^^


Verfasst am:
10. Mai 2010, 10:34
Rufname:

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

soll ja nicht der gleiche sein, aber die konstante lngstore bleibt ja nach dem loeschen auch noch vorhanden. Und wenn ich ihn recht verstanden habe, sollte die sortierung nach dem autowert sein. Deshalb denke sollte als lngstore doch Me!Nummer -x reichen. Allerdings muss evtl. über eine abfrage x als nächst kleinerer wert von Nummer definiert werden, da bei mehrmaligen löschen -1 natürlich nicht mehr zwangsweise einen datensatz anzeigen wird.
SebastianB.
interessierter noob


Verfasst am:
10. Mai 2010, 11:12
Rufname:


AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

hi,

danke für den input.

ich habe es jetzt wie folgt gelöst:
Code:

Private Sub cmdDelete_Click()
Dim rst As Recordset
Dim nummer As Long

nummer = Me.CurrentRecord     'aktuelle Datensatznummer
nummer = nummer - 1           'vorheriger DS, den der Benutzer schon kennt

Set rst = Me.Recordset.Clone

If MsgBox("Risiko löschen?", vbYesNo, "") = vbYes Then

    rst.Bookmark = Me.Bookmark
    rst.Delete
    rst.Close
    Me.Requery
End If
DoCmd.GoToRecord , , acGoTo, nummer
End Sub


Grüße
Sebastian
GuyIncognito
Man wächst an seinen Aufgaben ^^


Verfasst am:
10. Mai 2010, 11:28
Rufname:

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

du solltest das -1 durch -x ersetzen und x über eine abfrage bestimmen lassen!
Falls du 2 datensätze hintereinander löschst(zuerst den mit der kleineren Nummer und dann den mit der größeren), dann wird dein befehl nicht mehr funktionieren, da diese nummer nicht mehr vorhanden ist.
SebastianB.
interessierter noob


Verfasst am:
10. Mai 2010, 11:33
Rufname:

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

das verstehe ich jetzt nicht wirklich.
meine abfrage wird doch nach jedem klick aktualisiert. und ich lasse mir nur die jeweils aktuelle ds-nummer ausgeben. es führt also zu keinerlei problemen.

ich denke aber, dass ich das -1 wieder rausnehme, weil ich sons ein problem bekomme, wenn ich den 1. ds löschen will.

Sebastian
Marmeladenglas
komme zurecht


Verfasst am:
10. Mai 2010, 11:42
Rufname:

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

Hi,
den Einwand wollte ich gerade auch erwähnen, wenn der erste gelöscht wird, gibt es ein Problem, bzw. muß das vorher geprüft werden.
Was spricht eigentlich gegen ein einfaches:

Code:
DoCmd.GoToRecord , , acPrevious

also:
Code:
Dim rst As Recordset

Set rst = Me.Recordset.Clone

If MsgBox("Risiko löschen?", vbYesNo, "") = vbYes Then

    rst.Bookmark = Me.Bookmark
    rst.Delete
    rst.Close
   
End If
DoCmd.GoToRecord , , acPrevious

Wobei hier natürlich auch geprüft werden muss, ob es überhaupt einen Vorgänger gibt
Das Me.Requery ist überflüssig bzw. sogar hinderlich, da durch immer zum ersten Datensatz gesprungen wird
@guy:
es geht hier um den Offset, also die relative Position des Datensatzes im Recordset, nicht etwa um die gelöschte kleinere ID


Zuletzt bearbeitet von Marmeladenglas am 10. Mai 2010, 11:52, insgesamt einmal bearbeitet
SebastianB.
interessierter noob


Verfasst am:
10. Mai 2010, 11:47
Rufname:

AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

hm, an das einfache acprevious hab ich gar nicht gedacht. soweit ich weiß, muss ich beim previous keine abfrage machen, weil ja auch einfache datensatzwechsel so funktionieren und wenn ich den vorgänger vom 1. angezeigt bekommen will, gibt access mir immer den 1. als antwort wieder zurück.

allerdings habe ich mich von dem gedanken jetzt verabschiedet, dass ich das vorherige angezeigt bekommen will. das hat aber gründe der benutzbarkeit.

ich danke noch einmal.
Marmeladenglas
komme zurecht


Verfasst am:
10. Mai 2010, 11:54
Rufname:


AW: Zu vorherigem DS in Formular springen - AW: Zu vorherigem DS in Formular springen

Nach oben
       Version: Office 2003

Hi,
wobei die Prüfung bzgl. des Goto mit deiner Version ein einfaches Prüfen der Nummer auf 0 wäre, um den Fehler abzufangen.
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: Problem beim Bericht oeffnen, wenn Parameter von Formular 11 Gast1 993 21. Jul 2005, 15:28
Nindigo Problem beim Bericht oeffnen, wenn Parameter von Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage über Formular einen Wert übergeben. 4 magnum 1280 29. Mai 2005, 14:55
jens05 Abfrage über Formular einen Wert übergeben.
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragen im Formular aufrufen, automatisch bestätigen 3 Calvin22 1606 12. Apr 2005, 12:12
Willi Wipp Abfragen im Formular aufrufen, automatisch bestätigen
Keine neuen Beiträge Access Tabellen & Abfragen: kreuzabfrage ausführen nach vorgeschaltetem formular mit kom 4 Gast 887 21. Dez 2004, 15:17
Gast kreuzabfrage ausführen nach vorgeschaltetem formular mit kom
Keine neuen Beiträge Access Tabellen & Abfragen: Formeln vom Formular, werden in der Abfrage nicht angezeigt 4 maddes 895 23. Nov 2004, 12:38
Skogafoss Formeln vom Formular, werden in der Abfrage nicht angezeigt
Keine neuen Beiträge Access Tabellen & Abfragen: Wert eines Feldes aus Formular in Tabelle speichern 18 kave78 13710 16. Okt 2004, 13:40
Ming Wert eines Feldes aus Formular in Tabelle speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Aktionsabfrage in Formular -immer nur einen Datensatz ändern 6 blauvogel 1092 08. Okt 2004, 11:43
Skogafoss Aktionsabfrage in Formular -immer nur einen Datensatz ändern
Keine neuen Beiträge Access Tabellen & Abfragen: Zeile der Dateneingabe (*) in einem Formular verschieben 2 Albertus 790 08. Okt 2004, 09:17
Albertus Zeile der Dateneingabe (*) in einem Formular verschieben
Keine neuen Beiträge Access Tabellen & Abfragen: Suchfunktion mit mehreren Kriterien aus Formular 5 Danny G. 2218 09. Sep 2004, 11:08
Danny G. Suchfunktion mit mehreren Kriterien aus Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Mit Formular Abfrage machen? 9 Gast 2092 06. Sep 2004, 10:03
Nevyn Mit Formular Abfrage machen?
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle, Formular, Abfrage...und nun ? 3 Gags 790 29. Aug 2004, 22:05
lothi Tabelle, Formular, Abfrage...und nun ?
Keine neuen Beiträge Access Tabellen & Abfragen: AbfrageKriterien in einem Formular eintragen 12 Martin von der Bergwiese 2999 17. Aug 2004, 10:11
stpimi AbfrageKriterien in einem Formular eintragen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen