Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Uebereinstimmenden Datensatz Suchen
zurück: Kleine 'Standard'-Funktionen fuer ACCESS (z.B. RUNDEN) weiter: Umgang mit m:n-Beziehungen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
lothi
c#, .Net


Verfasst am:
26. Okt 2005, 21:28
Rufname:
Wohnort: Birgisch

Uebereinstimmenden Datensatz Suchen - Uebereinstimmenden Datensatz Suchen

Nach oben
       

Hallo zusammen

Das Problem ist ich habe ein Hauptformular mit Adressen und ein Unterformular, in dem man die Daten der Einwohner zu dieser Adresse eingeben kann.
Öffne ich jetzt das Formular bin ich immer beim ersten Datensatz. Jetzt muss ich, mit „nächster Datensatz“, bis zu meiner gewünschten Adresse durchklicken, was sehr mühsam ist.

Nun das ist nicht unbedingt nötig. Es gibt 2 Arten um einen Daten zu Suchen eines ist der Filter (Eigenschaften;Filter).
Das Problem vom Filter ist, dass in dem Formular nur die gefilterten Datensätze angezeigt werden. Das erkannt man in der Navigationsleiste, wenn dort Datensatz 5 von 10 (Gefilter) steht. Die restlichen 15 Datensätze sind so lange weg, bis der Filter zurückgesetzt wird. Wird dieser zurückgesetzt steht man wieder am Anfang der Daten.

Die Zweite Methode ist die Find Methode. Die Find Methode ist aber nur mit VBA einzusetzen.
Find ist eine Methode des DAO Objektes. Es gibt FindFirst, FindNext, FindPrevius, FindLast. (In ADO schlauerweise nur noch Find.)

Aber keine Angst sie brauchen nichts zu Programmieren.

  1. Schalten sie den Steuerelement Assistent ein. (Das ICON mit dem Zauberstab)
  2. Erstellen sie mit dem Assistenten ein Kombinations oder Listenfeld. Folgender Dialog erscheint.
  3. Wählen sie dort die dritte Option aus.

    Wenn die 3. Option nicht erscheint, kann Access keine Daten im Formular finden, zu denen er ein Suchkombifeld erstellen kann. Kontrollieren sie, ob das Formular auch wirklich eine Datenherkunft hat. Kontrollieren sie auch, dass eine eindeutige ID vorhanden ist, nach der Access suchen kann.
  4. Im nächsten Schritt werden Felder des Formulars aufgelistet. Dort nehmen sie als erstes Feld das ID-Feld. Nach diesem Feld wird dann in dem Formular gesucht.
  5. Der Rest des Assistenten ist selbsterklärend und kann durchgeklickt werden.
Jetzt nimmt uns natürlich wunder was uns da Access erstellt hat.
Markieren sie das neu erstellte Kombifeld öffnen sie die Eigenschaften (rechte Maustaste Eigenschaften…)
Reiter Ereignisse
Irgend wo dort sollte jetzt [Ereignisprozedur] stehen und zwar in Nach Aktualisierung
Klicken sie in das Feld und dann hinten auf die 3 Punkte.
Es öffnet sie der VBA-Editor.
Dort sollte jetzt folgender Code stehen:
Code:
Private Sub Kombinationsfeld64_AfterUpdate()
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Intervention_ID] = " & Str(Nz(Me![Kombinationsfeld64], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Dim rs As Object
Hier wird die Variable rs als Object deklariert

Set rs = Me.RecordsetClone
Me = Das gerade Aktuelle Formular in dem das Kombi ist.
RecordsetClone = Eine Kopie der Formulardaten wird der Objektvariablen rs übergeben

rs.FindFirst "[ID] = " & Str(Nz(Me![Kombinationsfeld64], 0))
Hier passiert jetzt die Suche
[ID] = Das Feld, das im Formular den Primärschlüssel (Autowert) enthält.
NZ() = Eine Funktion die, wenn das Kombi den Wert NULL enthält eine 0 übergibt.

If Not rs.EOF Then Me.Bookmark = rs.Bookmark

EOF = End Of File Also wenn die Suche nicht über das Ende der Tabelle gegangen ist dann Markiere den Datensatz.
Da es sich im rs um eine Kopie der Formulardaten handelt haben beide Datensätze, im rs und im Formuar, den gleichen Bookmark und kann so im Formular angezeigt werden.

Eigentlich ist das ganze jetzt fertig und sollte so Funktionieren. Wie man sieht kann man die gleiche Funktion auch für andere nützliche Sachen gebrauchen.
z.B Sie geben neue Daten ein und müssen das Formular aktualisieren das geht ja mit Me.Requery. Jetzt passiert genau das lästige, ich bin nicht mehr im gleichen Datensatz wie bei der Aenderung sondern wieder beim ersten.
Um nach der Aktualisierung wieder zum gleichen DS zurückzukehren passen sie den Code von wie folgt an:
Code:
Private Sub cmdButton_Click()
    ' Zum gleichen DS zurückspringen
    Dim rs As Object
    Dim IDSpeicher As Long

    'Die gerade aktuelle iD Speichern
    IDSpeicher = Me!id
    'Formular Aktualisieren
    Me.Requery
    Set rs = Me.Recordset.Clone
    'Suchen nach der gespeicherten ID
    rs.FindFirst "[ID] = " & IDSpeicher
    'Wieder im Formular anzeigen
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
stpimi
Moderator Access


Verfasst am:
27. Okt 2005, 08:01
Rufname:
Wohnort: Graz


AW: Uebereinstimmenden DS Suchen - AW: Uebereinstimmenden DS Suchen

Nach oben
       

Moderatorenanmerkung: Nimmt den Beitrag aus den unbeantworten Themen heraus. stpimi/2005-10-27
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: Datensatz über Formular suchen 3 Sandnet 2166 10. Jun 2005, 10:52
Dalmatinchen Datensatz über Formular suchen
Keine neuen Beiträge Access Tabellen & Abfragen: Reduzierung mehrerer Datensätze auf einen Datensatz 2 Pulldown 819 03. Jun 2005, 09:32
Pulldown Reduzierung mehrerer Datensätze auf einen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz automatisch kopieren??? 0 Edelschnitt 701 11. Mai 2005, 19:41
Edelschnitt Datensatz automatisch kopieren???
Keine neuen Beiträge Access Tabellen & Abfragen: Hintergrundfarbe in Datensatz 1 Rheinbote 900 24. Feb 2005, 20:18
stpimi Hintergrundfarbe in Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info 2 Steve 914 14. Jan 2005, 00:43
Steve Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info
Keine neuen Beiträge Access Tabellen & Abfragen: Bei der Aktualisierung eines Tabellenwertes neuen Datensatz 6 zheng 810 07. Dez 2004, 22:35
zheng Bei der Aktualisierung eines Tabellenwertes neuen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Unternummern von Artikeln suchen/verwalten 4 umbroboy 502 22. Nov 2004, 17:49
Gast Unternummern von Artikeln suchen/verwalten
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: Datensatz nach Datum suchen?? 1 Hansen 1390 04. Okt 2004, 12:16
stpimi Datensatz nach Datum suchen??
Keine neuen Beiträge Access Tabellen & Abfragen: datensätze suchen 13 mr@ 1514 13. Sep 2004, 10:21
meyster datensätze suchen
Keine neuen Beiträge Access Tabellen & Abfragen: Einen Wert per Abfrage in mehreren Tabellenspalten suchen 2 Danny G. 606 10. Sep 2004, 18:22
Danny G. Einen Wert per Abfrage in mehreren Tabellenspalten suchen
Keine neuen Beiträge Access Tabellen & Abfragen: n:n Datensatz hinzufügen fehlgeschlagen 2 accesshasser 980 27. Aug 2004, 12:07
Pusteblume n:n Datensatz hinzufügen fehlgeschlagen
 

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