Heb nog nieuwe info:
" When a parameterized query is run in Access, Access provides an expression
service that evaluates many parameters. For example, a reference to a control
on an open form will be evaluated automatically, and the query containing
that parameter will use the value contained in that control. This expression
service is not available when you use VBA code to execute a parameterized
action query or to open a recordset based on a parameterized query that
returns records.
Your code must supply the exact parameter values to be used. This is done
through the use of QueryDef objects. QueryDef objects have a Parameters
collection containing Parameter objects that have a Name property, a Value
property and an index in the collection. These objects and properties are
used to supply the required parameter values. "
Aangezien mijn query criteria ophaalt uit een formulier bij handmatig openen
(en formulier open). In mijn geval worden blijkbaar de criteria niet
automatisch opgehaalt uit het formulier, aldus bovenstaande tekst. Vandaar,
denk ik, de foutmelding. Nu is de vraag hoe we parameters uit het formulier
in de query/vba krijg (zonder dat ik de flinke SQL string in zijn geheel in
de modele zet)?
Michiel
Post by MDK Den HaagBest John,
Het werkt als de query gebaseerd is op een niet linked table. Het werkt
helaas niet als de query gebaseerd is op een table welke gelinked is (in mijn
geval). Ik krijg dan de fout melding "Erro 3061. Too few parameters. Expected
3". Ga je meerdere parameters invullen dan werkt het ook niet. Wat doe ik
fout?
De linked table komt van een ODBC database. Ik heb "Connect" geprobeerd maar
hier loop ik vast en/of werkt het ook niet. Ik dacht nl. dat ik eerst een
soort koppeling moet maken. Maar aan de andere kant staat de query in de
lijst van queries (menu) en kan ik hem zo openen.
Om tzt te kunnen zoeken wil ik de query als een recordset openen. Dan kan ik
movefirst etc gebruiken.
Post by John KopmelsPost by MDK Den HaagOnderstaan werkt niet. Ik krijg een foutmelding.
OpenRecordset("qryPlanAttainment", dbOpenForwardOnly)
Search.MoveFirst
zoals ik in een vorige thread al opgemerkt heb kan je in
een dbOpenForwardOnly recordset geen MoveFirst
doen zonder dat er een fout optreed ....
..OpenRecordset("qryPlanAttainment", dbOpenSnapshot)
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset( _
"qryPlanAttainment", dbOpenSnapshot)
'
rs.MoveFirst
Do Until rs.EOF
Debug.Print rs(0)
rs.MoveNext
Loop
'
rs.Close
Set rs = Nothing
groetjes -- John