Newsgroup: it.comp.appl.access
Titolo: funzione non definita e riferimenti

ho creato un software che distribuiamo ai nostri clienti, ogni tanto capita 
che su qualche pc mi da un errore di funzione non definita di solito il 
left. questo problema dovrebbe essere dovuto ad un riferimento mancante per 
cui mi sembra sul sito comune mi sono creato un programmino sempre in access 
che verifica i riferimenti. Il problema � che mi sono ritrovato in due casi 
in cui i riferimenti ci sono tutti ma la funzione left continua ad essere no 
definita, cosa posso fare?
grazie per chi vorr� aiutarmi
ciao
Max

 left. questo problema dovrebbe essere dovuto ad un riferimento mancante
Strano ...
Mi mandi il pezzetto di codice dove usi la left ( ) ?
Con le dichiarazioni delle eventuali variabili che usa.


In genere è un riferimento mancante...Fa parte di VBA.strings ( 
C:\Programmi\File comuni\Microsoft Shared\VBA\VBA6\VBE6.DLL)
 quindi non può mancare
Ricorda sempre che nelle query si usa il punto e virgola anzichè la virgola 
come nel codice.
Ciao, Carlo 

 ha scritto nel messaggio 
news:hvlmch$qi9$1...@tdi.cu.mi.it...

Caro Carlo
sinceramente non ho capito, io verifico che il vbe6.ddl è presente nella 
cartella, anche se (vado a memoria) essendo vista la cartella è programma 
files/common files/ ecc...
per quello che riguarda il resto il software funziona egregiamente su un 
centinaio di pc e quindi presumo che errori non ce ne siano
ciao
Max 

 ha scritto nel messaggio 
news:dfc42803-d11e-4e25...@e5g2000yqn.googlegroups.com...

non è un codice ma una query con cui popolo una maschera, non fa riferimento 
a variabili ma solo a valori di un campo, tieni anche presente che lo stesso 
gira su un centinaio di pc con access2003 - 2007 e runtime 2007 senza 
problemi
ciao
Max 

 Max
Certo che vbe6.dll è presente, altrimenti non potrebbe proprio avviarsi 
Access.
Volevo dire che Left fa parte di VBA.strings (vbe6.dll) e dunque quella 
segnalazione, errata, va presa come un errore, in genere, per un riferimento 
mancante ma che non ha nulla a che vedere con la dll segnalata.
Controlla bene tutti i riferimenti...a manina e per ogni riferimento 
scriviti la versione e controlla che sia compatibile con la versione di 
Access che usi. Per esempio comdlg32 o comctl32, se le usi, potrebbero dare 
dei problemi a seconda delle versioni. Idem per mascal.ocx.
Fino ad ora non hai indicato quali riferimenti usi.
Ciao, Carlo

 problemi
Ma come la scrivi ? Cosi' ? :
select * from ... Where left( ' " & pippo & " ',2) = 'ciccio';
dove pippo e' una variabile stringa ?
Mmmmhhh ... Non e' che ... Eh, ma dovrei mettere le mani
sul pc incriminato.
Non e' questione di libreria, mi sa tanto che e' questione
di installazione dell' Access.

 ha scritto nel messaggio 
news:hvqqne$94p$1...@tdi.cu.mi.it...

elenco riferimenti
visual basic for application  C:\Programmi\File comuni\Microsoft 
Shared\VBA\VBA6\VBE6.DLL
Microsoft access 11.0 object library C:\Programmi\Microsoft 
Office\OFFICE11\msacc.olb
Microsoft DAO 3.6 Object Library C:\Programmi\File comuni\Microsoft 
Shared\DAO\dao360.dll
Microsft Activex data objects 2.1 Library C:\Programmi\File 
comuni\System\ado\msado21.tlb
Ole automation c:\windows\system32\stdole2.tlb
Microsoft word 11.0 object library C:\Programmi\Microsoft 
Office\OFFICE11\msword.olb
Microsoft ADO ext 2.8 for DDL and security C:\Programmi\File 
comuni\System\ado\msadox.dll
ciao
Max

> Certo che vbe6.dll č presente, altrimenti non potrebbe proprio avviarsi 

Se usi contemporaneamente ADO e DAO devi ricordare di dichiarare le 
variabili in modo esplicito...sempre.
Per esempio: anzichč Dim R as Recordset
Dim R as DAO.Recordset
Credo proprio che il problema sia lě.
Ciao, Carlo 

 Ciao, Carlo
perdonami Carlo ma non ho capito se tutte le variabili (anche ad esempio la 
classica Stdocname as string) devono essere dichiarate in modo esplicito o 
solo quelle che riguardano i recordset.
In questo ultimo caso io ho una solo variabile non dichiarata ma la funzione 
a cui è legata funziona perfettamente (è una funzione con cui riallega i 
back end)
ciao e grazie
Max 

 Max
No, non tutte le variabili.
La classe recordset č comune sia ad ADO che a DAO dunque va dichiarata 
esplicitamente.
Cosě come le classi Field(s), Error(s), Parameter(s), Property(ies) e molte 
altre.
Se non usi alcuna classe di ADO prova a togliere il riferimento (Microsoft 
Activex Data Objects) e vedi come va.
Ciao, Carlo 

 ha scritto nel messaggionews:hvqqne$94p$1...@tdi.cu.mi.it...

Per esperienza di posso dire di controllare che tutti abbiano la
stessa versione di word, piu' in specifico la versione di msword.olb
A quanto ho capito se sul pc del destinatario la versione del
riferimento e' uguale o successiva a quella del pc di sviluppo non ci
sono problemi.
Se e' precedente quel riferimento salta ed invalida tutta
l'applicazione.
Ciao
mau

 ha scritto nel messaggio 
news:90c4e718-fabb-4047...@q12g2000yqj.googlegroups.com...


Ciao
mau
partendo dal presupposto che il mio programma è stato elaborato con access 
2003, purtroppo la cosa mi è capitata con 2 pc di cui uno con access 2003 e 
uno con access 2007. ho un centinaio di installazioni divise più o meno a 
metà con entrambe le versioni (per essere più precisi una metà 2003 e il 
restante più o meno equamente diviso tra access 2007 "normale" e runtime) e 
questo errore non si verifica; l'unica cosa che faccio "standard" sulle 
versioni 2007 è quella di far aggiungere una cartella office11 al 
c:\programmi\Microsoft office\ con dentro msword.olb  e msacc.olb nella 
versione 2003.
ciao
Max