"Te weinig parameters" bij openrecordset (query)

Status
Niet open voor verdere reacties.

fmeca

Gebruiker
Lid geworden
7 sep 2009
Berichten
95
Hoi Mede programmeurs,

Ik worstel al een dag met het probleem dat ik een foutmelding krijg bij het openen van recordset.

"Run-time error '3601':
Er zijn te weinig parameters. Het verwachte aantal is: 1.

Onderstaand de SQL code van de query.

Code:
Set db = CurrentDb
strSQL = "SELECT Tbl_Plant.ID_klant, Tbl_Storing.ID_storing, Tbl_Storing.ID_equipment, Tbl_Storing.omschrijving, Tbl_Storing.soort, Tbl_Storing.gemeld, Tbl_Storing.opgelost, Tbl_Storing.startdatum, Tbl_Storing.starttijd, Tbl_Storing.einddatum, Tbl_Storing.eindtijd, Tbl_Storing.oorzaak, Tbl_Storing.status, Tbl_Storing.PO_Interval, Tbl_Storing.StorHyperLink " & vbCrLf & _
    "FROM (Tbl_Plant INNER JOIN (Tbl_Area INNER JOIN Tbl_Unit ON Tbl_Area.ID_area = Tbl_Unit.ID_area) ON Tbl_Plant.ID_plant = Tbl_Area.ID_plant) INNER JOIN (Tbl_Equipment INNER JOIN Tbl_Storing ON Tbl_Equipment.ID_equipment = Tbl_Storing.ID_equipment) ON Tbl_Unit.ID_unit = Tbl_Equipment.ID_unit " & vbCrLf & _
    "WHERE (((Tbl_Plant.ID_klant)=[Forms]![Frm_Main]![KeuzelijstKlant]) AND ((Tbl_Storing.soort) Like ""PO*"")) " & vbCrLf & _
    "ORDER BY Tbl_Storing.startdatum, Tbl_Storing.PO_Interval;"
Set rs = db.OpenRecordset(strSQL)

ALs de query los run is het geen probleem. alleen in combinatie met de db open recordset.
Het probleem is ontstaan na het toevoegen van de

Code:
"WHERE (((Tbl_Plant.ID_klant)=[Forms]![Frm_Main]![KeuzelijstKlant])

Ik heb geprobeerd dit op te lossen door deze voorwaarde eruit te halen en dit apart in een If te plaatsen.
Als controle tijdens debuggen heb ik een msgbox toegevoegd om de waarde te vergelijk.
Ondanks dat de waarde volgens de msgbox WAAR zou moeten zijn ziet hij dit toch als ONWAAR???

Code:
        MsgBox rs!ID_klant & KeuzelijstKlant & " " & rs!status
        If rs!status = "actief*" AND rs!ID_klant = [Forms]![Frm_Main]![KeuzelijstKlant] Then
....ect....


Heeft iemand een idee hoe dit op te lossen?
Oplossing bij voorkeur door toepassing van de query maar een andere oplossing is uiteraard ook welkom.

b.v.d.
Eric
 
Dat de query prima werkt als je hem los gebruikt is logisch; daar is hij voor gebouwd namelijk. Maar je gebruikt hem in een VBA procedure, en dan moet je hem anders maken. Simpeler zelfs, dus wellicht dat je dat als troost voor de verloren tijd kunt zien ;)
Code:
    "WHERE ((Tbl_Plant.ID_klant= " & Me.KeuzelijstKlant & ") AND (Tbl_Storing.soort Like ""PO*"")) " & vbCrLf & _
 
THX Michel,

Stom Stom Stom van mij. Nu ik het zie is het vrij logisch.
Ik heb de variabele niet als variabele in de string op genomen.
:o:o:o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan