Hallo,
wie kann man die letzte Position des Datensatzmarkierers in einem Endlosformular speichern und bei
Neuaufruf wiederherstellen lassen?
danke für Hilfe
Markus
Hallo,
wie kann man die letzte Position des Datensatzmarkierers in einem Endlosformular speichern und bei
Neuaufruf wiederherstellen lassen?
danke für Hilfe
Markus
Hallo Markus,
wie kann man die letzte Position des Datensatzmarkierers in
einem Endlosformular speichern und bei
Neuaufruf wiederherstellen lassen?
mit Bookmark
Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Danke erstmal für den Hinweis, aber das hilft mir nicht viel weiter, find auch nirgends was im Netz.
kannst du mir vielleicht Beispielcode geben?
Gruß
Markus
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Markus,
Danke erstmal für den Hinweis, aber das hilft mir nicht viel
weiter, find auch nirgends was im Netz.
kannst du mir vielleicht Beispielcode geben?
klar, aber warum in die Ferne schweifen …hier mal nur so was in der Hilfe von Access steht:
RecordsetClone (Eigenschaft)
Ausdruck.RecordsetClone
Ausdruck Erforderlich. Ein Ausdruck, der eines der Objekte in der Liste Betrifft zurückgibt.
Hinweise
Die Einstellung der Eigenschaft RecordsetClone eines Formulars stellt eine Kopie der Abfrage oder Tabelle dar, die dem Formular zugrunde liegt und von der Einstellung der Eigenschaft RecordSource des Formulars festgelegt wird. Basiert ein Formular z.B. auf einer Abfrage, so entspricht ein Verweis auf die Eigenschaft RecordsetClone dem Kopieren eines Recordset-Objekts unter Verwendung derselben Abfrage. Wenn Sie dann für das Formular einen Filter anwenden, wird das Recordset-Objekt der Filterung angepasst.
Die Eigenschaft RecordsetClone ist nur in Visual Basic verfügbar und ist in allen Ansichten schreibgeschützt.
Verwenden Sie die Eigenschaft RecordsetClone, wenn Sie mit den Datensätzen eines Formulars unabhängig von diesem Formular arbeiten möchten. Sie verwenden z.B. die Eigenschaft RecordsetClone, wenn Sie eine Methode wie z.B. die DAO-Methoden Find einsetzen möchten, die nicht für Formulare verwendet werden kann.
Wenn ein neues Recordset-Objekt geöffnet wird, ist dessen erster Datensatz der aktuelle Datensatz. Wenn Sie eine der Find-Methoden oder eine der Move-Methoden verwenden, um einen beliebigen Datensatz des jeweiligen Recordset-Objekts zum aktuellen Datensatz zu erklären, müssen Sie den aktuellen Datensatz im Recordset-Objekt mit dem aktuellen Datensatz des Formulars synchronisieren. Dazu weisen Sie den Wert der DAO-Eigenschaft Bookmark der Bookmark-Eigenschaft des Formulars zu.
Mit Hilfe der RecordCount-Eigenschaft können Sie die Anzahl der Datensätze eines Recordset-Objekts ermitteln. Das folgende Beispiel zeigt, wie Sie die RecordCount- und RecordsetClone-Eigenschaften kombinieren können, um die Datensätze eines Formulars zu zählen:
Forms!Orders.RecordsetClone.MoveLast
MsgBox „My form contains " _
& Forms!Orders.RecordsetClone.RecordCount _
& " records.“, vbInformation, „Record Count“
Anmerkung Sobald Sie das Formular geschlossen oder die RecordSource-Eigenschaft des Formulars geändert haben, ist das Recordset-Objekt nicht mehr gültig. Wenn Sie später auf das Recordset-Objekt oder auf vorher gespeicherte Lesezeichen des Formulars oder des Recordset-Objekts verweisen, tritt ein Fehler auf.
Beispiel
Das folgende Beispiel verwendet die Eigenschaft RecordsetClone, um ein Recordset-Objekt aus dem Formular Bestellungen zu erstellen und dann die Namen der Felder im Direktfenster auszugeben.
Sub Print_Field_Names()
Dim rst As Recordset, intI As Integer
Dim fld As Field
Set rst = Me.RecordsetClone
For Each fld in rst.Fields
’ Print field names.
Debug.Print fld.Name
Next
End Sub
Das nächste Beispiel verwendet die Eigenschaft RecordsetClone und das Recordset-Objekt, um den Datensatz einer Datensatzgruppe mit dem aktuellen Datensatz eines Formulars zu synchronisieren. Wenn ein Firmenname aus einem Kombinationsfeld ausgewählt ist, wird die Methode FindFirst verwendet, um den Datensatz für diese Firma zu finden, und die DAO-Eigenschaft Bookmark des Recordset-Objekts wird der Eigenschaft Bookmark des Formulars zugewiesen, was bewirkt, dass das Formular den gefundenen Datensatz anzeigt.
Sub SupplierID_AfterUpdate()
Dim rst As Recordset
Dim strSearchName As String
Set rst = Me.RecordsetClone
strSearchName = Str(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox „Record not found“
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
End Sub
besonders das letzte Beispiel sollte dir weiter helfen!
Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)