Hallo Zusammen,
In einem Formular habe ich zwei ungebundene Kombinationsfelder. Hierüber sollen die entsprechenden Datensätze ausgewählt werden. Kombifeld1 nur die Aktiven, Kombifeld2 Alle.
Die Datensatzherkunft ist eine Abfrage.
Code der Felder:
-Private Sub cboAktiv_AfterUpdate()
'Datensatz speichern'
DoCmd.RunCommand acCmdSaveRecord
On Error GoTo Fehler
'Datensatz anwählen'
Dim Datensatz1 As Object
Set Datensatz1 = Me.Recordset.Clone
Datensatz1.FindFirst "tblQMA0500901ID = " & Int(Me!cboAktiv)
If Not Datensatz1.EOF Then Me.Bookmark = Datensatz1.Bookmark
Me.Refresh
Exit Sub
Fehler:
MsgBox Err.Description & vbCrLf & Err.Number
End Sub
-Private Sub cboAktiv_GotFocus()
Me.Refresh
End Sub
-Private Sub cboAlle_AfterUpdate()
'Datensatz speichern'
DoCmd.RunCommand acCmdSaveRecord
On Error GoTo Fehler
'Datensatz anwählen'
Dim Datensatz2 As Object
Set Datensatz2 = Me.Recordset.Clone
Datensatz2.FindFirst "tblQMA0500901ID = " & Int(Me!cboAlle)
If Not Datensatz2.EOF Then Me.Bookmark = Datensatz2.Bookmark
Me.Refresh
Exit Sub
Fehler:
MsgBox Err.Description & vbCrLf & Err.Number
End Sub
-Private Sub cboAlle_GotFocus()
Me.Refresh
End Sub
Das funktionierte bis zu einer gewissen Anzahl von Datensätzen einwandfrei.
Nun ist es allerdings so, dass (manchmal) nach der Auswahl ein falscher Datensatz angezeigt wird. Oder der richtige Datensatzsatz wird angezeigt und beim Ändern des Datensatzes wird direkt in den falschen Datensatz gesprungen und dort die Änderung eingetragen.
Der wird dann immer um genau 100 Datensätze zurückgesprungen. Nur wenn ich das Formular verlasse und neu öffne, passiert dies nicht.
Wo liegt der Fehler? Jemand eine Idee?
Gruß
Hallo,
was genau möchtest du jetzt machen? Den entsprechenden Datensatz mittels ungebundenem Kombinationsfeld auswählen?
Warum verwendest du dann nicht einfach einen Filter?
Private Sub cboAktiv_AfterUpdate()
Me.Filter = "Textfeld='" & Me.cboAktiv & "'"
Me.FilterOn = True
End Sub
Hallo,
neben dem was Hondo sagt, frage ich mich, warum Me.Refresh nach dem Positionieren auf den Datensatz gemacht wird..
Und beim Aktualisieren der Kombiliste(n) , was vermutlich bezweckt werden soll, wäre ein Requery des Kombis angebrachter (bei "Enter"-Ereignis, sollte es überhaupt nötig sein)
Private Sub cboAktiv_Enter()
Me.Requery
End Sub
Hallo,
ich habe es nun mal über die Methode von Hondo probiert, aber bekomme nur eine Fehlermeldung:
Datentypenkonflikt in Kriterienausdruck
3464
Was ist an meiner Methode falsch?
Warum postest du deinen Code nicht?
So können wir nur raten dass die gebundene Spalte im Kombinationsfeld ein Zahlenfeld ist.
Dann müsstest du die Hochkommatas entfernen.
Die Spalte ist ein Zahlenfeld (ID). Die Hochkommatas habe ich nun entfernt.
Code:
Me.Filter = "tblQMA0500901ID= Me.cboAlle"
Me.FilterOn = True
Wenn ich nun einen Datensatz auswähle, dann kommt eine Parameterabfrage.
1. Der Datensatz soll aber über das Kombifeld ausgewählt werden, keine Parameterabfrage
2. Eine erneute Abfrage eines weiteren Datensatzes soll auch möglich sein (ist in dem Fall nicht möglich)
Verweis auf Formularfelder müssen außerhalb des Strings sein:
Me.Filter = "tblQMA0500901ID = " & Me.cboAlle
Hi,
anbei ein Vorschlag, der auch einen leeren Inhalt im Auswahlfeld berücksichtigt.
Private Sub cboAlle_AfterUpdate()
If Nz(Me.cboAlle, 0) > 0 Then
Me.Filter = "tblQMA0500901ID=" & Me.cboAlle
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End Sub
Harald