Newsgroup: it.comp.appl.access
Titolo: Chiamare una funzione in un DB esterno

Scusate se insisto ma ho una grande urgenza  di risolvere questo problema:
devo poter chiamare una funzione che si trova in un db access esterno dal db
corrente, access anche lui.
Ovviamente non posso importarla nel db corrente per le ragioni che ho
esposto nel mio post del 16.
Supplico i guru di Access di rispondermi !!
Grazie anticipatamente
Thierry

...

Riferimenti--->Riferimenti,  e gli passi il tuo mdb come libreria. Tutte le
funzioni in esso contenute le troverai nel tuo mdb, pure con automatica
richiesta di parametri ove previsti
Saluti.
Luciano

corrente, access anche lui.
Basta mettere l'mdb dove sta la funza nei riferimenti.
--
Lorenzo Coronati
--
<<Nessuno sa che questa affermazione e' vera>>
(John D. Barrow)
--

> Basta mettere l'mdb dove sta la funza nei riferimenti.
Eh già! La fretta non mi ha fatto vedere tutti i tipi di files che si
possono mettere nei riferimenti :-))
Vedevo negli esempi sempre dei files DLL e quindi malgrado il mio sospetto
pensai che il collegamento si facese da qualche altra parte. Comunque adesso
il richiamo alla funzione esterna funziona perfettamente.
Però adesso sorge un'altro problema a proposito delle variabili usate e
soprattutto che nel codice c'è continuamente:
 Set dbs=CurrentDb!!!
Questo adesso invece di guardare le tabelle del db esterno mi va a cercare
dei nomi di tabelle (per giunta in BE) che ovviamente non esistono nel db
corrente da dove ho chiamato la funzione esterna!!
Come posso trovare una soluzione senza rimettere le mani nel db esterno che
poi questo problema è generalizzabile a tutti i db che sono stati fatti in
modo indipendente nell'azienda e per i quali non mi sogno neanche di rifare
tutti i codici!
Forse dovrei chiamare il db esterno con una nuova istanza come se chiamassi
un'applicazione diversa come Excel e Word?
In questo modo penso che i due db rimaranno distaccati e non si mescoleranno
le variabili. Giusto o no?
Ma non c' è più semplice che fare Access.Application e tutto il resto?
Grazie ancora per la vostra pazienza, ma questo punto è la base del
gestionale che sto costruendo (a partire da pezzi sparsi...) e quindi devo
avere le idee chiare!
Thierry

 Set dbs=CurrentDb!!!
Passagli il dbs come argomento, no?
Magari lo metti come optional e gli dai valore predef.
currentdb.
Bai


 currentdb.
Non so se ci siamo capiti. Intendenvo come rendere il db esterno corrente
poiché la maschera che chiamo in esso utilizza delle routines che contengono
dbs=CurrenDb, piů delle query con tanto di riferimento a tabelle in BE. Ho
visto che in queste routine, dal debug apparre che dbs.Name abbia il path e
il nome del db dal quale chiamo il db esterno!
Domanda generica: ma per fare questo lavoro come fate?
Ciao
Thierry


dall'Help in linea (Access97)
È possibile utilizzare la funzione CodeDb in un modulo di codice per
determinare il nome dell'oggetto Database che fa riferimento al
database in cui il codice è correntemente in esecuzione. Utilizzare la
funzione CodeDb per accedere a oggetti DAO che fanno parte di un
database di libreria.
È possibile, ad esempio, utilizzare la funzione CodeDb in un modulo di
un database di libreria per creare un oggetto Database che fa
riferimento al database di libreria. È quindi possibile aprire un set
di record basato su una tabella contenuta nel database di libreria.
Sintassi
Set database = CodeDb
La funzione CodeDb dispone dell'argomento riportato di seguito.
Argomento	Descrizione
 
database	Variabile di oggetto Database.
Osservazioni
La funzione CodeDb restituisce un oggetto Database per cui la
proprietà NomeElemento corrisponde al percorso e al nome completo del
database da cui viene richiamato. Tale funzione è utile quando si
rende necessario manipolare gli oggetti DAO nel database di libreria.
Quando si richiama una funzione in un database di libreria, il
database dal quale la funzione è stata richiamata rimane quello
corrente, anche mentre il codice è in esecuzione in un modulo nel
database di libreria. Per fare riferimento agli oggetti DAO nel
database di libreria, è necessario conoscere il nome dell'oggetto
Database che rappresenta il database di libreria.
Si supponga, ad esempio, di avere in un database di libreria una
tabella che elenca i messaggi di errore. Per manipolare dal codice i
dati contenuti nella tabella, è possibile utilizzare la funzione
CodeDb per determinare il nome dell'oggetto Database che fa
riferimento al database di libreria contenente la tabella.
Se la funzione CodeDb viene eseguita dal database corrente,
restituisce il nome dello stesso database, che è lo stesso valore
restituito dalla funzione CurrentDb.
---------------
Guido
light...@flashnet.it