Recordset Filter liefert falsches Ergebnis

17/03/2010 - 11:30 von Andreas Ahrens | Report spam
Hi NG,

die Filterbedingung im unteren Code:

Private Sub sFspeichern_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim str As String

str = "SELECT * FROM dbo_Artikel"
Set db = CurrentDb
Set rs = db.OpenRecordset(str)

MsgBox Me.ArtID 'Ergebnis richtig (ArtID = ArtikelID)

rs.Filter = "ArtID = " & Me.ArtID

MsgBox rs!ArtID 'Ergebnis falsch

rs.Edit
rs![Lagerbestand] = rs!Lagerbestand - Me.Menge
rs.Update
End Sub

liefert ein falsches Ergebnis. Statt der aktuellen ArtID wird nach dem
Filtern die ID des ersten Artikels angezeigt.

Woran kann dass liegen?

Gruß
Andy
 

Lesen sie die antworten

#1 Doerthe Weber
17/03/2010 - 12:26 | Warnen spam
Hallo Andreas,

Andreas Ahrens schrieb:
Hi NG,

die Filterbedingung im unteren Code:

Private Sub sFspeichern_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim str As String

str = "SELECT * FROM dbo_Artikel"
Set db = CurrentDb
Set rs = db.OpenRecordset(str)

MsgBox Me.ArtID 'Ergebnis richtig (ArtID = ArtikelID)

rs.Filter = "ArtID = " & Me.ArtID

MsgBox rs!ArtID 'Ergebnis falsch

rs.Edit
rs![Lagerbestand] = rs!Lagerbestand - Me.Menge
rs.Update
End Sub

liefert ein falsches Ergebnis. Statt der aktuellen ArtID wird nach dem
Filtern die ID des ersten Artikels angezeigt.

Woran kann dass liegen?




Da fehlt Dir noch was, nach dem

rs.Filter = "ArtID = " & Me.ArtID
brauchst Du noch
Set rs = rs.OpenRecordset()

damit der Filter greift.

Wenn Du nicht explizit Filtern, sondern eigentlich nur zu einer
eindeutigen ID springen willst, würde ich Dir aber eher

rs.FindFirst "ArtID = " & Me.ArtID

empfehlen.

Gruß
Doerthe

Ähnliche fragen