vba herkent een qyeryveld niet

Status
Niet open voor verdere reacties.

BartSr

Gebruiker
Lid geworden
26 aug 2008
Berichten
240
dit is het stukje stukje code waar ik mee zit:
Set tabel1 = CurrentDb.OpenRecordset("QueryTOTAAL")
Glng1 = 0: Glng2 = 0
If tabel1.RecordCount > 0 Then
tabel1.MoveFirst
Do Until tabel1.EOF
If Right$(tabel1!Datum, 4) > jaar Then GoTo Verder
If InStr("VW", tabel1!Administratie) > 0 Then GoTo Verder
en zo verder.
De betreffende QueryTOTAAL bevat zowel Datum alsAdministratie
Desondanks krijg ik bij de uitvoering op de rode regel de melding Kan het element niet vinden in deze collectie
Wat doe ik fout?
 
Wat gebeurt er als je er in de Stapmodus doorheen loopt? Geeft het veld tabel1!Datum dan inderdaad een datum als je de muis er boven houdt? Ik heb die query niet, dus ik kan het niet naspelen.
 
Wat gebeurt er als je er in de Stapmodus doorheen loopt? Geeft het veld tabel1!Datum dan inderdaad een datum als je de muis er boven houdt? Ik heb die query niet, dus ik kan het niet naspelen.
Ja het veld datum wordt wel herkend! En als ik de query handmatig uitvoer worden beide velden getoond...:evil:
 
En gaat hij al gelijk in het eerste record de mist in?
(Gelieve met een boogje om de QUOTE knop heen te klikken op een zodanige manier dat je het niet raakt; het tekstvak <Snel reageren> is toch veel makkelijker?)
 
Kan het element niet vinden in deze collectie wil zeggen dat het genoemde veld (in dit geval Administratie) niet in de gegeven collectie kan gevonden worden. In 99% van de gevallen komt dat door een spelfout.
 
Dan zal het dus die ontbrekende procent zijn, want TS geeft aan dat dezelfde query het wél als gewone query doet. En de meeste mensen spellen ‘administratie’ als ‘ administratie’. Ben benieuwd wat dan de juiste spelling is in België. Zal wel iets als “administrationable” zijn :d.
 
er worden in België geen punten afgetrokken als een DBA een spelfout maakt in een veldnaam :rolleyes:
 
Kan het dat het veld Administratie meerdere keren in de query voorkomt? Kan je de SQL instructie van de query geven?
 
Probeer het zo eens:
Code:
If InStr("VW", tabel1.Fields(0)) > 0 Then GoTo Verder
Waarbij 0 in dit geval het eerste veld is, gebaseerd op het plaatje waarin het veld Administratie helemaal vooraan staat. Heb je het op een andere plek, dan uiteraard het getal aanpassen.
 
Ben niet zo'n fan van de ordinaal positie te gebruiken. Van als er iets aan de query wijzigt , klopt je code niet meer.
 
Kan zijn, maar als je de query opbouwt in VBA, dan weet je precies welke velden je hebt. Ik zou sowieso nooit een queryresultaat opvragen, maar die query dus altijd in VBA maken. Nu weet je inderdaad niet welke velden je aanspreekt. Mijn voorstel was in eerste instantie ook alleen bedoeld om te kunnen controleren of de uitkomst dan wél goed is. Dan weet je namelijk waar het probleem zit. Daarom schreef ik ook: "Probeer het zo eens".
 
Ik heb een andere oplossing gezocht; bedankt voor jullie meedenken.
Bart
 
Altijd fijn voor de lezers om dan te weten wélke oplossing je hebt gebruikt. Een forumvraag zonder (voor andere bruikbare) oplossing is nogal frustrerend:).
 
Altijd fijn voor de lezers om dan te weten wélke oplossing je hebt gebruikt. Een forumvraag zonder (voor andere bruikbare) oplossing is nogal frustrerend:).

Goed dan: Ik zie af van de betreffende wijziging en had de query al weggegooid...
 
Da's denk ik niet een oplossing waar onze lezertjes heel erg warm van gaan worden :D. Maar wel een oplossing :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan