Hallo zusamne,
ich komme einfach nicht auf den Fehler...
Ich habe eine Datenbank programmiert die über zwei abhängige Kombinationsfelder nach Stichwörtern sucht und die dazugehörigen Datensätze in einem Listenfeld anzeigt.
Soweit so gut... In der Vollversion von Access läuft das ganze auch.
In der Runtime gibt es beim Klick auf die Prozedur "suche" immer einen unbestimmten Laufzeitfehler.
Ich bin mit meinem Latein wirklich am Ende und wäre um jede Hilfe froh.
Vielen Dank schon im Voraus.
togo
Code:
Private Sub suche_AfterUpdate()
Dim rs As Recordset
Dim r As String
Dim s As String
suchliste.SetFocus
On Error GoTo Fehler
Set rs = Me.RecordsetClone
If Me!suche <> "" Then
rs.FindFirst "Eingruppierung = " & Me!suche
'oder falls RechnungsNr kein Zahlenfeld ist sondern vom Typ Text:
'r = Eingruppierung
's = Me!suche
'rs.FindFirst "Eingruppierung = '" & Me!suche & "'"
w
v
If Auswahl = 1 Then
Me!suchliste.RowSource = "SELECT ID, B4, Benennung, Länge, Breite, Höhe " & _
"FROM mittelauswahl " & _
"WHERE [Eingruppierung] Like '" & Me!suche & "'"
' Me!suchliste = Me!suchliste.Column(0, 0)
' suchliste = suchliste.ItemData(0)
'suchliste.Requery
End
Else Me!suchliste.RowSource = ""
End If
If Auswahl = 2 Then
Me!suchliste.RowSource = "SELECT ID, B4, Benennung, Länge,Breite,Höhe " & _
"FROM Sondermittelauswahl " & _
"WHERE [Eingruppierung] Like '" & Me!suche & "'"
' Me!suchliste = Me!suchliste.Column(0, 0)
' Me!suchliste = Me!suchliste.ItemData(0)
'suchliste.Requery
End
Else
Me!suchliste.RowSource = ""
End If
If Auswahl.Text = Null Then Me!suche = Empty
End If
If Not rs.NoMatch Then
Me.Bookmark = rs.Bookmark
End If
Set rs = Nothing
Fehler:
MsgBox "Fehler " & vbCrLf & "Fehlernummer: " & Err.Number & _
vbCrLf & "Fehlerbeschreibung: " & Err.Description
End Sub
LISTENFELD:
Private Sub suchliste_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Recordset
On Error Resume Next
Set rs = Me.Recordset.Clone
rs.FindFirst "[ID] = " & Str(Nz(Me![suchliste], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Hallo Togo85
Ich hatte unter Access 2003 ein gleiches Problem es liegt an der Runtime Version die du verwendest, sie wird leider nicht alle Befehle oder Formular Optionen die du benötigst Unterstützten.
Gruß Stefan
Hallo,
kann ich meine Suche irgendwie umstellen?
Es ist leider nicht möglich eine andere Runtime einzusetzten...
Gibt es programmiertechnisch keine Lösung für solch ein Problem?
Gruß
togo85
Hallo,
@Stapi: ??
@togo85:
korrigierter Code (Verweis auf die Dao3.6 Library setzen):
Private Sub suche_AfterUpdate()
Dim rs As DAO.Recordset
Me!suchliste.SetFocus
On Error GoTo Fehler
Set rs = Me.RecordsetClone
If nz(Me!suche,"") <> "" Then
rs.FindFirst "Eingruppierung = " & Me!suche
'oder falls Eingruppierung kein Zahlenfeld ist sondern vom Typ Text:
'rs.FindFirst "Eingruppierung = '" & Me!suche & "'"
Select case Me!Auswahl
Case 1
Me!suchliste.RowSource = "SELECT ID, B4, Benennung, Länge, Breite, Höhe " & _
"FROM mittelauswahl " & _
"WHERE [Eingruppierung] = " & Me!suche
' Me!suchliste = Me!suchliste.Column(0, 0)
' Me!suchliste = suchliste.ItemData(0)
'Me!suchliste.Requery
Case 2
Me!suchliste.RowSource = "SELECT ID, B4, Benennung, Länge,Breite,Höhe " & _
"FROM Sondermittelauswahl " & _
"WHERE [Eingruppierung] =" & Me!suche 'Eingruppierung Datentyp Long
Case else
Me!suchliste.RowSource =""
Me!suche = Null
End Select
If Isnull(Me!Auswahl) Then
If Not rs.NoMatch Then
Me.Bookmark = rs.Bookmark
End If
Set rs = Nothing
Fehler:
MsgBox "Fehler " & vbCrLf & "Fehlernummer: " & Err.Number & _
vbCrLf & "Fehlerbeschreibung: " & Err.Description
End Sub
LISTENFELD:
Private Sub suchliste_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As DAO.Recordset
On Error Resume Next
Set rs = Me.Recordset.Clone
rs.FindFirst "[ID] = " & Nz(Me![suchliste], 0)
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
set rs=Nothing
End Sub
Hallo,
DF6GL, tausend Dank an dich!
Es hat geklappt. Ich wäre schier verrückt geworden.
Danke!
Würde dir gerne nen Stern geben, aber weiß nicht wie...
Gruß
togo