Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Recordset in Access Runtime (2003) Umgebung

Begonnen von togo85, August 09, 2010, 17:01:20

⏪ vorheriges - nächstes ⏩

togo85

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

Stapi

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
Grüße aus dem schönen NRW
Stefan

togo85

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

DF6GL

#3
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

togo85

#4
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