SELECT Config_Prod.metri
FROM Config_Prod
WHERE (((Config_Prod.CONTATORE)=[Forms]![M_creaProd]![ObjProdList]));
che utilizza il parametro [Forms]![M_creaProd]![ObjProdList] che
č una banalissima casella di testo in cui l'utente scrive un numero.
Il campo Config_Prod.CONTATORE č la chiave della tabella
Config_Prod ed č generato da access durante l'inserimento dei dati.
Se ho aperta la maschera M_creaProd ed ho un valore corretto
nella casella di testo, la query viene eseguita correttamente se la
eseguo con un doppio click dalla finestra del DB.
Perň genera un errore se la eseguo da codice VB,
Private Sub metraturaUpdate()
Dim dbs As Database
Dim qdf As QueryDef
Dim rec As Recordset
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("QM_creaProd - esrai metratura obj
selezionato, da Config_Prod")
Set rec = qdf.OpenRecordset
Metratura = rec!metri
dbs.Close
rec.Close
End Sub
cosě mi dice che non trova un parametro, no so perchč ma vede
[Forms]![M_creaProd]![ObjProdList] come un parametro.
Ho provato di tutto, a scrivere l'sql direttamente nel codice...
' Set rec = dbs.OpenRecordset("SELECT Config_Prod.metri " & _
"FROM Config_Prod " & _
"WHERE (((Config_Prod.CONTATORE)=" &
[Forms]![M_creaProd]![ObjProdList] & "));", dbOpenSnapshot)
ho provato a convertire il valore con Clng, Cstr.... ma dice sempre
"Tipo non corrispondente (errore 13)"
ma perchč? perchč? PERCHč????
in extremis ho provato a no nusare un controllo, ma un semplice
parametro, quindi la query era
SELECT Config_Prod.metri
FROM Config_Prod
WHERE (((Config_Prod.CONTATORE)=[pippo]));
ed il codice era
Private Sub metraturaUpdate()
Dim dbs As Database
Dim qdf As QueryDef
Dim rec As Recordset
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("QM_creaProd - esrai metratura obj
selezionato, da Config_Prod")
qdf.Parameters![pippo] = "2"
Set rec = qdf.OpenRecordset
Metratura = rec!metri
dbs.Close
rec.Close
End Sub
e mi da lo stesso stramaledetto incomprensibile errore....
ho provato pure
qdf.Parameters![pippo] = 2
(senza apici)
ma il risultato non cambia...
inutile dire che se eseguo la query con un doppio click dalla finestra
DB ed inseriso 2 tutto funziona correttamente....
sono bloccato, no so piů che provare...
se non riesco ad aprire quel recordset da codice non posso estrarre i
dati... e sono fregato... :-((
aiutooooooooooooooooooooooooooooooo
ciao, Max.
ma la form M_creaProd l'hai aperta???? quando esegui da VBA?
la collezione Forms contiene le forms APERTE. Se M_creaProd no e'
aperta (visibile o hidden fa lo stesso) il sistema non riesce a
"vedere" [Forms]![M_creaProd]![ObjProdList] e quindi giustamente pensa
che lo stesso sia un parametro da immettere
a. cara
>ma la form M_creaProd l'hai aperta???? quando esegui da VBA?
>la collezione Forms contiene le forms APERTE. Se M_creaProd no e'
>aperta (visibile o hidden fa lo stesso) il sistema non riesce a
>"vedere" [Forms]![M_creaProd]![ObjProdList] e quindi giustamente pensa
>che lo stesso sia un parametro da immettere
sisi, certo ch è aperta.....
ma il problema si presenta anche se non utilizzo il controllo sulla
form, come nel secondo esempio che riporto....
mi da sempre errore di tipo non valido :-(
ciao, max
>Ho un problema assurdo....
>
>ho provato a convertire il valore con Clng, Cstr.... ma dice sempre
>"Tipo non corrispondente (errore 13)"
>
>ma perchè? perchè? PERCHè????
>
>in extremis ho provato a no nusare un controllo, ma un semplice
>parametro, quindi la query era
>
>SELECT Config_Prod.metri
>FROM Config_Prod
>WHERE (((Config_Prod.CONTATORE)=[pippo]));
>
In fin dei conti e' un parametro, quello che passi alla Query.
Hai provato a registrarlo nella Query stessa?
Nell finestra di Desing della Query:
tasto destro del mouse,
parametri,
dai il nome (esatto) del parametro ed il tipo.
--
Tommaso Cafini _...@rhein-neckar.netsurf.de_
_tca...@gmx.net_
PGP-KeyID = C922A2B1
Key fingerprint = 7C 9E 72 C5 11 06 A7 67 54 03 FF 02 4C 90 39 F5
>Ho un problema assurdo....
HO CAPITOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
era uno stramaledettissimo riferimento del caXXo che incasinava
access...
per essere precisi er un riferimento a "Microsoft activeX 2.1 library"
che quando ha priorità superiore a "Microsofto DAO 3.6" si vede che
crea dei tipi di oggetti uguali al DAO ma non compatibili.
ed infatti access non riconosceva il tipo recordset....
Ciao, Max
(...)
prova con qdf.parameters("Pippo")=2
(...)
così dovrebbe andare.
Per inciso, gli apici usali solo se il parametro è stringa, un contatore è
un long!
--
********************************************
Giorgio B. - P.S. elettronica srl - Udine