Hallo !
Ich hätte da eine Frage zum Recordset Filtern
Mit der folgenden Prozedur übergebe ich ein Filter Kriterium per Inputbox
Und suche alle Einträge die das Kriterium egal an welcher Position beinhalten
Das klappt auch ganz gut
Das Problem an der Sache ist nur wenn ein Kriterium keinen Treffer ergibt bekomme ich ein
Fehlermeldung an der Stelle Me.IstArtikel.ListIndex = 0
Nun habe ich versucht ein If rst.noMatch = True Then nach dem End With einzubauen
Aber leider ohne Erfolg den es wird immer übergangen auch wenn ich ein rst.RecordCount = 0
Versuche
Bin für jeden tipp Dankbar
Schöne Weihnachten und besinnliche Feiertage Gruß Frank
Private Sub CmdArtIDSuchen_Click()
Dim strEingabe As String
strEingabe = InputBox("Geben Sie einen Teil der gesuchten Art.-ID ein ...", _
"Gesamtsuche nach Art.-ID")
If strEingabe = "" Then Exit Sub
If strEingabe <> 0 Then ArtikelIntNrFilter strEingabe
End Sub
Sub ArtikelIntNrFilter(strArtikelIntNr As String)
Dim db As Database
Dim rst As Recordset
Dim rstArtikelIntNr As Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TblArtikel", dbOpenDynaset)
rst.filter = "ArtID LIKE '*" & strArtikelIntNr & "*'"
Set rstArtikelIntNr = rst.OpenRecordset
With rstArtikelIntNr
Do Until .EOF
Debug.Print !ArtID
Debug.Print !ArtLiefIDRef
Debug.Print !ArtLifArtNr
Debug.Print !ArtName
Debug.Print !ArtVPEinheit
Debug.Print !ArtEinheitenIDRef
Debug.Print !ArtPreisstaffelung
Debug.Print !ArtStaffelungPreisIDRef
Debug.Print !ArtKatIDRef
Debug.Print !ArtUntKatIDRef
Debug.Print !ArtNetto
Debug.Print !ArtMwstIDRef
Debug.Print !ArtMWSTBetrag
Debug.Print !ArtBrutto
Debug.Print !ArtNettoPreisKg
Debug.Print !ArtVPENettoPreis
Debug.Print !ArtBild
Debug.Print !ArtWGruppeIDRef
.MoveNext
Loop
End With
Set Me!IstArtikel.Recordset = rstArtikelIntNr
rst.Close
Me.IstArtikel.SetFocus
Me.IstArtikel.ListIndex = 0
Set rst = Nothing
Exit Sub
Fehler:
MsgBox Err.Number & " " & Err.Description
End Sub
HAllo,
Nomatch bezieht sich auf die Findfirst-Methode..
so sollte das aber gehen:
.
.
Set rstArtikelIntNr = rst.OpenRecordset
If rstArtikelIntNr.RecordCount >0 then
With rstArtikelIntNr
.
.
.
.
End If
rstArtikelIntNr.Close
Set rstArtikelIntNr =Nothing
Exit Sub
.
.
.
Warum füllst Du aber so umständlich ein Listenfeld?
Frohe Weihnachten..
Hallo Frank,
ZitatSet Me!IstArtikel.Recordset = rstArtikelIntNr
Wenn das ein Listenfeld ist, müsstest Du hier auch eine Fehlermeldung bekommen.
Me!IstArtikel.RowSource = rstArtikelIntNrgruss ekkehard
Danke für die antworten !
So geht's jetzt danke !!!
Sub ArtikelIntNrFilter(strArtikelIntNr As String)
Dim db As Database
Dim rst As Recordset
Dim rstArtikelIntNr As Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TblArtikel", dbOpenDynaset)
rst.filter = "ArtID LIKE '*" & strArtikelIntNr & "*'"
Set rstArtikelIntNr = rst.OpenRecordset
If rstArtikelIntNr.RecordCount > 0 Then
With rstArtikelIntNr
Do Until .EOF
Debug.Print !ArtID
Debug.Print !ArtLiefIDRef
Debug.Print !ArtLifArtNr
Debug.Print !ArtName
Debug.Print !ArtVPEinheit
Debug.Print !ArtEinheitenIDRef
Debug.Print !ArtPreisstaffelung
Debug.Print !ArtStaffelungPreisIDRef
Debug.Print !ArtKatIDRef
Debug.Print !ArtUntKatIDRef
Debug.Print !ArtNetto
Debug.Print !ArtMwstIDRef
Debug.Print !ArtMWSTBetrag
Debug.Print !ArtBrutto
Debug.Print !ArtNettoPreisKg
Debug.Print !ArtVPENettoPreis
Debug.Print !ArtBild
Debug.Print !ArtWGruppeIDRef
.MoveNext
Loop
End With
Me!IstArtikel.RowSource = rstArtikelIntNr
rst.Close
Me.IstArtikel.SetFocus
Me.IstArtikel.ListIndex = 0
Set rst = Nothing
Exit Sub
End If
rstArtikelIntNr.Close
Set rstArtikelIntNr = Nothing
MsgBox "Es wurden keine Passenden Artikel gefunden !", vbInformation Or vbOKOnly, "Kein Treffer !"
Exit Sub
Fehler:
MsgBox Err.Number & " " & Err.Description
End Sub
Eine Fehlermeldung habe ich nicht bekommen, das Listenfeld wurde einfach leer da ja keine Daten vorhanden sind
Der Fehler trat erst dann auf wo der erste Eintrag ausgewählt erden soll
Das mit dem Befüllen des Listenfeldes hat sich halt so ergeben
Das Formular habe ich in 2 Teilen mit einem PageBreak erstellt es ist nicht gebunden
Bleibe teile sind unterschiedlich gespeist
Da hab ich die tausend Filter die ich da eingebaut habe halt mal so gemacht
Der Button hinter den der jetzt steht ist die Beschriftung des Feldes Interne Art.-Nr.
Hab hier mal 2 Bilder
Danke für die Hilfe Frank
Frohe Weihnacht an alle !
(http://s14.directupload.net/images/111223/temp/7ewlccai.jpg) (http://s14.directupload.net/file/d/2747/7ewlccai_jpg.htm)
(http://s14.directupload.net/images/111223/temp/3kgoxprt.jpg) (http://s14.directupload.net/file/d/2747/3kgoxprt_jpg.htm)