sql funktioniert nicht

13/04/2009 - 23:29 von Philippe Malmedé | Report spam
hallo,

bin jetzt eine weile am testen aber nichts hilft.

folgender fehler: immer wenn ich das formulat aufrufe fragt das Formular
nach dem parameter in der where bedingung.


Private Sub btnLieferscheinErfassen_Click()
Dim strSQL As String

p_lonLieferschein = LieVerwID
P_strLieferscheinNR = LieNummer
P_lonLieferantenAGR = LieAGR
p_datLieferDatum = LieDatum
p_datBuchungsDatum = LieGebuchAm

MsgBox Str(p_lonLieferschein)

strSQL = "SELECT tblLieferscheinArtikelEingang.artWarID,
tblLieferscheinArtikelEingang.ArtWarNummer,
tblLieferscheinArtikelEingang.ArtWarMEK, " & _
"tblLieferscheinArtikelEingang.ArtWarBestand,
tblLieferscheinArtikelEingang.ArtLieferscheinID,
tblLieferscheinArtikelEingang.ArtWarLieferscheinNr, " & _
"tblLieferscheinArtikelEingang.ArtWarEingangDatum,
tblLieferscheinArtikelEingang.ArtWarGebucht " & _
"FROM tblLieferscheinArtikelEingang " & _
"WHERE (((tblLieferscheinArtikelEingang.ArtLieferscheinID)= " &
p_lonLieferschein & "));"


MsgBox strSQL

DoCmd.OpenForm "sfmLieferscheinArtikelEingabe", , strSQL, , , acDialog

End Sub


wenn ich die sql teste im formular-fenster und eine feste zahl eingebe
funktioniert der Filter. (aber hier tut er es nicht.)

vielen dank im voraus für eure bemühungen.

gruß
Philippe
 

Lesen sie die antworten

#1 Peter Doering
14/04/2009 - 02:12 | Warnen spam
Hallo,

Philippe Malmedé wrote:

folgender fehler: immer wenn ich das formulat aufrufe fragt das Formular
nach dem parameter in der where bedingung.

Private Sub btnLieferscheinErfassen_Click()
Dim strSQL As String

p_lonLieferschein = LieVerwID
P_strLieferscheinNR = LieNummer
P_lonLieferantenAGR = LieAGR
p_datLieferDatum = LieDatum
p_datBuchungsDatum = LieGebuchAm

MsgBox Str(p_lonLieferschein)

strSQL = "SELECT tblLieferscheinArtikelEingang.artWarID,
tblLieferscheinArtikelEingang.ArtWarNummer,
tblLieferscheinArtikelEingang.ArtWarMEK, " & _
"tblLieferscheinArtikelEingang.ArtWarBestand,
tblLieferscheinArtikelEingang.ArtLieferscheinID,
tblLieferscheinArtikelEingang.ArtWarLieferscheinNr, " & _
"tblLieferscheinArtikelEingang.ArtWarEingangDatum,
tblLieferscheinArtikelEingang.ArtWarGebucht " & _
"FROM tblLieferscheinArtikelEingang " & _
"WHERE (((tblLieferscheinArtikelEingang.ArtLieferscheinID)= " &
p_lonLieferschein & "));"


MsgBox strSQL

DoCmd.OpenForm "sfmLieferscheinArtikelEingabe", , strSQL, , , acDialog

End Sub

wenn ich die sql teste im formular-fenster und eine feste zahl eingebe
funktioniert der Filter. (aber hier tut er es nicht.)



Das liegt daran, dass tblLieferscheinArtikelEingang.ArtLieferscheinID
nicht, oder nicht unter diesem Namen in der RecordSource von
sfmLieferscheinArtikelEingabe vorkommt.

Pruef mal die Schreibweise.

Uebrigens, falls du den Filter im geoeffneten Formular nicht nutzt, waere
es einfacher, die WHERE-Bedingung zu uebergeben:

Dim strCond As String
strCond = "tblLieferscheinArtikelEingang.ArtLieferscheinID= " & _
p_lonLieferschein
DoCmd.OpenForm "sfmLieferscheinArtikelEingabe", , , strCond, , acDialog

Beachte auch die Position des Parameters.

Ansonsten, das SQL-Statement liesse sich auch kuerzer schreiben:

strSQL = "SELECT artWarID, ArtWarNummer, ArtWarMEK, " & _
"ArtWarBestand, ArtLieferscheinID, ArtWarLieferscheinNr, " & _
"ArtWarEingangDatum, ArtWarGebucht " & _
"FROM tblLieferscheinArtikelEingang " & _
"WHERE ArtLieferscheinID= " & p_lonLieferschein & ";"

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
3. SEK Sa/So 16./17.5.2009, Nürnberg http://www.donkarl.com/SEK/

Ähnliche fragen