PDA

Vollständige Version anzeigen : Wie springe ich in einem geöffnteten Recordset - Objekt zu einem bestimmten Datensatz


David
30.01.2001, 15:03
Hallo !

Nachdem ich ein bestimmtes Recordset - Objekt geöffnet habe, muss ich zu einem bestimmten Datansatz springen um die Daten bearbeiten zu können. Leider ist mir nur die Move Methode bekannt... gibt es eine Möglichkeit, anhand eines einmaligen Feldinhaltes, direkt zu einem Datensazu zu springen ? (Die einzige Lösung, die ich gefunden habe, ist eine Schleife -> sehr langsam)

Vielen Dank

David

Manuela Kulpa
30.01.2001, 15:28
Hallo David!

Wenn du nur eine Schleife in Betracht ziehst, gehe ich mal davon aus, dass du den Wert, den du anspringen möchtest bereits kennst. Warum setzt du dann nicht die Find-Methode ein? Anbei ein kleines Beispiel:

<font face="Courier New" size="2">Public Sub FindMethode()

' Objektvariablen
Dim db As DAO.Database
Dim rs As DAO.Recordset

' Stringvariable
Dim sKriterium As String

' Objektzuweisung
Set db = CurrentDb()
Set rs = db.OpenRecordset("DeineTabelle", dbOpenDynaset)

' Suchtext hinterlegen vom Typ String
sKriterium = "DeinTextFeld = 'Test'"

' Suche starten
rs.FindFirst sKriterium

' Solange die Suche erfolgreich ist
While Not rs.NoMatch
Debug.Print rs.Fields!DeinZahlenfeld.Value
Debug.Print rs.Fields!DeinTextFeld.Value
rs.FindNext sKriterium
Wend

' Speicher freigeben
If Not rs Is Nothing Then rs.Close: Set rs = Nothing
If Not db Is Nothing Then db.Close: Set db = Nothing

End Sub</font>
Berücksichtige bitte bei der Definition der Suche die unterschiedlichsten Datentypen (String, Long, Date usw.). Eine Alternative würde noch in der Seek-Methode bestehen, welche aber nicht bei eingebundenen Tabellen anwendbar ist.

Wenn ich falsch liege, erkläre doch mal ganz genau, was du machen möchtest!

LLAP

David
30.01.2001, 15:59
Vielen Dank Manu...
Ich habe das Problem jetzt noch konfotabler mit einer SQL Abfrage gelöst !

Gruß

David

Manuela Kulpa
30.01.2001, 16:18
Gut gelöst David!

Das ich darauf nicht gekommen bin :) , manchmal denke ich einfach zu kompliziert. Natürlich die effektivste Lösung!

slg