Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Query, errore assurdo SOLO se eseguita da codice VB, errore "Tipo non corrispondente (errore 13)"

1 view
Skip to first unread message

MarcoMax

unread,
Jun 5, 2000, 3:00:00 AM6/5/00
to
Ho un problema assurdo....
ho una query facile facile

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.

Alessandro Cara

unread,
Jun 6, 2000, 3:00:00 AM6/6/00
to
MarcoMax ha scritto:

>
> Ho un problema assurdo....
> ho una query facile facile
>
> 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,
>
> [cut]

> [Forms]![M_creaProd]![ObjProdList] come un parametro.
> [cut]
> 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

MarcoMax

unread,
Jun 6, 2000, 3:00:00 AM6/6/00
to
On Tue, 06 Jun 2000 02:10:09 +0200, Alessandro Cara <al...@blunet.it>
wrote:

>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

Tommaso Cafini

unread,
Jun 6, 2000, 3:00:00 AM6/6/00
to
a...@a.com (MarcoMax) wrote:

>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

MarcoMax

unread,
Jun 6, 2000, 3:00:00 AM6/6/00
to
On Mon, 05 Jun 2000 19:40:15 GMT, a...@a.com (MarcoMax) wrote:

>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

Giorgio PS

unread,
Jun 6, 2000, 3:00:00 AM6/6/00
to
email: giorgio....@ps-elettronica.it
MarcoMax <a...@a.com> wrote in message 393bfe3...@news.interbusiness.it...
> Ho un problema assurdo....
> ho una query facile facile
>
> 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....

(...)
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

0 new messages