wat word hiernmee bedoeld ?

Status
Niet open voor verdere reacties.
Een object dat je definieert heeft eigenschappen en methodes. Een eigenschap van een tekstveld is bijvoorbeeld Me.txtKlantID.Font. Een methode is een vervolgactie, om het maar even simpel te zeggen. In jouw voorbeeld is de fout logisch, want je doet iets op een object dat niet mag bij dat objecttype. Wat heb je gedaan?

Code:
Dim qTmp As RecordSet
..
qTmp.sql = strSQL

Je legt de variabele qTmp vast als Recordset. Dan kun je alleen Recordset methodes gebruiken zoals MoveNext. Die zie je heel makkelijk als je qtmp. intypt, want de IntelliSense opent dan de lijst met bruikbare eigenschappen en methodes. Je zult zien, dat SQL daar niet bij zit. Dat had voor jou al een waarschuwing moeten zijn, want als de methode niet in de lijst staat, dan kan die methode niet bij dat object.
Het probleem is uiteraard heel simpel op te lossen door te kijken waar het probleem zit. En dat zit hem in de definitie. qTmp is namelijk geen recordset, maar een query. Je moet hem dus definiëren als een Querydef.
Code:
Dim qTmp As QueryDef
..
qTmp.SQL = strSQL

Zul je ook zien dat SQL nu wél in de IntelliSense staat, en dat (tweede aanduiding) dat qTmp.SQL nu ook in hoofdletters komt te staan. Let daar ook op: hoofdlettergebruik in functies is een goede indicatie of een naam/eigenschap/methode goed gespeld is!

Overigens heb je er nogal overbodige acties als DoEvents en Me.ProjectID.Requery instaan. Tenzij je dat doet om je collega's verward het bos in te sturen, kun je ze gewoon weghalen :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan