Fout 3061 Er zijn te weinig parameters

janluc

Gebruiker
Lid geworden
10 jul 2016
Berichten
74
Besturingssysteem
Windows 11
Office versie
2016
Beste mensen,

Zie de bijlage.
Ik wil een mailing maken aan de klantsoort(en) die ik heb aangevinkt in frm1. Het frm2 dient om daar nog eventuele mutaties in aan te brengen, en frm3 om de mailing te starten via de knop "Test"
De code onder die knop "Test" in frm3 heb ik al een tijd geleden gemaakt, en werkte prima zolang ik de recordset liet aanmaken op basis van een tabel. Ik probeer nu de recordset aan te maken op basis van een query ("gryMailings2" in dit geval).
Dan krijg melding: Fout 3061 tijdens uitvoering: er zijn te weinig parameters: het verwachte aantal is: 7.
De regel die de fout geeft is deze:

Code:
Set Rst = dbs.OpenRecordset("qryMailings2")

Misschien is in de query zelf al te zien waar het fout gaat, dus die zet ik er los bij:
Code:
SELECT tblCliënten.Selecteer, tblCliënten.Roepnaam, tblCliënten.Achternaam, tblCliënten.[e-mail]
FROM tblCliënten
WHERE (((tblCliënten.[IB-klant])=IIf([Formulieren]![frm1]![SeIIB]=-1,-1))) OR (((tblCliënten.[BTW-aangifte per kwartaal])=IIf([Formulieren]![frm1]![SelBTWKwartaal]=-1,-1))) OR (((tblCliënten.Ondernemer)=IIf([Formulieren]![frm1]![SelWinst]=-1,-1))) OR (((tblCliënten.Toeslagontvanger)=IIf([Formulieren]![frm1]![SelToeslag]=-1,-1))) OR (((tblCliënten.[BTW-aangifte per jaar])=IIf([Formulieren]![frm1]![SelBTWJaar]=-1,-1))) OR (((tblCliënten.[BTW-KOR])=IIf([Formulieren]![frm1]![SelBTWKOR]=-1,-1))) OR (((tblCliënten.[BTW-zelfaangever])=IIf([Formulieren]![frm1]![SelBTWZelfaangever]=-1,-1)));

Kan iemand me helpen dit op te lossen? Alvast dank voor het meedenken!

Groet, Jan-Luc
 

Bijlagen

Laatst bewerkt:
Fout treedt bij mij niet op, het aantal parameters in de query is ook netjes 7.
 
Hierover peinzend, zag ik dat de criteria in de query onnodig ingewikkeld waren geformuleerd. Ook al leidt het niet tot een oplossing van mijn vraag, post ik hier de simpeler versie:
SQL:
SELECT tblCliënten.Selecteer, tblCliënten.Roepnaam, tblCliënten.Achternaam, tblCliënten.[e-mail]
FROM tblCliënten
WHERE (((tblCliënten.[IB-klant])=[Formulieren]![frm1]![SeIIB])) OR (((tblCliënten.[BTW-aangifte per kwartaal])=[Formulieren]![frm1]![SelBTWKwartaal])) OR (((tblCliënten.Ondernemer)=[Formulieren]![frm1]![SelWinst])) OR (((tblCliënten.Toeslagontvanger)=[Formulieren]![frm1]![SelToeslag])) OR (((tblCliënten.[BTW-aangifte per jaar])=[Formulieren]![frm1]![SelBTWJaar])) OR (((tblCliënten.[BTW-KOR])=[Formulieren]![frm1]![SelBTWKOR])) OR (((tblCliënten.[BTW-zelfaangever])=[Formulieren]![frm1]![SelBTWZelfaangever]));
 
Ik was wat te kort door de bocht. Bijgaand een wel werkende versie met een iets andere aanpak.
 

Bijlagen

Beste Ahulpje,

Dank je wel. Helaas krijg ik nu fout 3075, zie de bijlage.
 

Bijlagen

  • Foutmelding.webp
    Foutmelding.webp
    14 KB · Weergaven: 8
Dat gebeurt als je geen enkele klantsoort hebt geselecteerd. In bijgaande versie weer terug naar de oorspronkelijke werkwijze, qryMailings2 iets aangepast waarbij gebruik gemaakt wordt van het querydef object.
 

Bijlagen

Dat gebeurt als je geen enkele klantsoort hebt geselecteerd. In bijgaande versie weer terug naar de oorspronkelijke werkwijze, qryMailings2 iets aangepast waarbij gebruik gemaakt wordt van het querydef object.
Deze werkt perfect, dank je wel! Ook voor de toevoegingen.

En daarmee meteen mijn vraag: Kun je me vertellen waarom je dit hebt toegevoegd?

Code:
For Each prm In qdf.Parameters
    prm = Eval(prm.Name)
Next prm
 
Laatst bewerkt:
Terug
Bovenaan Onderaan