SQL-Abfrage lässt sich nicht ausführen

01/08/2009 - 16:57 von Peter Wilker | Report spam
Hallo

Ich kann die untenstehende Abfrage nicht ausführen. Wenn ich auf den
Button klicke, erscheint die Meldung:

'2 Parameter wurden erwartet, aber es wurden zuwenig Parameter übergeben'

Woran kann das liegen?

Besten Dank für Eure Mühe


Hans-Peter Wilker



Code:

Private Sub Befehl63_Click()


Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset


Set db = CurrentDb



strSQL = "SELECT TOP 1 First(abf_Main.ID) AS Erste_ID,
Count(abf_Main.feld_Kategorie) AS Anzahl_doppelte,
First(abf_Main.feld_Kategorie) AS Kategorie,
First(abf_Main.feld_Unterkategorie) AS Unterkategorie,
First(abf_Main.feld_Ware) AS Ware, First(abf_Main.feld_Preis) AS Preis,
First(abf_Main.Art_GP) AS Art_GP, First(abf_Main.Menge_GP) AS Menge_GP,
First(abf_Main.GP) AS GP "
strSQL = strSQL & "FROM abf_Main "
strSQL = strSQL & "GROUP BY abf_Main.feld_Kategorie,
abf_Main.feld_Unterkategorie, abf_Main.feld_Ware, abf_Main.feld_Preis,
abf_Main.Art_GP, abf_Main.Menge_GP, abf_Main.GP "
strSQL = strSQL & "HAVING (((Count(abf_Main.feld_Kategorie))>1) AND
((Count(abf_Main.GP))>1)); "


Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)


'########### auslesen ###############

Me!sel_Unterkategorie = Nz(rs!Unterkategorie)
Me!sel_Kategorie = Nz(rs!Kategorie)
Me!sel_Preis = Nz(rs!preis)

Me!txt_Grundpreis = Nz(rs!Grundpreis)
Me!txt_MengeGP = Nz(rs!MengeGP)
Me!txt_Art_GP = Nz(rs!ArtGP)

'############ schließen ###################

rs.Close
Set rs = Nothing
Set db = Nothing

End Sub
 

Lesen sie die antworten

#1 Thomas Möller
01/08/2009 - 17:51 | Warnen spam
Hallo Peter,

Peter Wilker schrieb:
Ich kann die untenstehende Abfrage nicht ausführen. Wenn ich auf den
Button klicke, erscheint die Meldung:

'2 Parameter wurden erwartet, aber es wurden zuwenig Parameter übergeben'

Woran kann das liegen?

Code:

Private Sub Befehl63_Click()

Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb

strSQL = "SELECT TOP 1 First(abf_Main.ID) AS Erste_ID,
Count(abf_Main.feld_Kategorie) AS Anzahl_doppelte,
First(abf_Main.feld_Kategorie) AS Kategorie,
First(abf_Main.feld_Unterkategorie) AS Unterkategorie,
First(abf_Main.feld_Ware) AS Ware, First(abf_Main.feld_Preis) AS Preis,
First(abf_Main.Art_GP) AS Art_GP, First(abf_Main.Menge_GP) AS Menge_GP,
First(abf_Main.GP) AS GP "
strSQL = strSQL & "FROM abf_Main "
strSQL = strSQL & "GROUP BY abf_Main.feld_Kategorie,
abf_Main.feld_Unterkategorie, abf_Main.feld_Ware, abf_Main.feld_Preis,
abf_Main.Art_GP, abf_Main.Menge_GP, abf_Main.GP "
strSQL = strSQL & "HAVING (((Count(abf_Main.feld_Kategorie))>1) AND
((Count(abf_Main.GP))>1)); "


Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)


'########### auslesen ###############

Me!sel_Unterkategorie = Nz(rs!Unterkategorie)
Me!sel_Kategorie = Nz(rs!Kategorie)
Me!sel_Preis = Nz(rs!preis)

Me!txt_Grundpreis = Nz(rs!Grundpreis)
Me!txt_MengeGP = Nz(rs!MengeGP)
Me!txt_Art_GP = Nz(rs!ArtGP)

'############ schließen ###################

rs.Close
Set rs = Nothing
Set db = Nothing

End Sub



kopier doch mal den SQL-String in eine Abfrage und versuch diese dann
auszuführen. Werden dort Parameter abgefragt?

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen