Newsgroup: it.comp.appl.access
Titolo: riferimenti MDB

Voglio aprire un form presente su un altro database come se fosse un form
del database principale.
Ho creato un Database principale con i riferimenti a due database che
contengono Maschere e Report, ma ho questi problemi:
1) dalla maschera di uno dei database figli non mi permette di passare ad
una maschera dell'altro database (segnala errore di maschera non trovata)
2) non stampa il report presente sul database figlio (e non segnala alcun
errore)
3) non funziona se metto come riferimenti gli MDE ma accetta solo MDB
Chiedo consigli oppure qualche indicazione di dove trovare documentazione
sull'argomento.
Grazie. Sandro

 ha scritto nel messaggio
news:HD4xa.6698$lK4.1...@twister1.libero.it...

Nel database secondario potresti scrivere una funzione del tipo:
Public Function ApriMascheraSecondaria(FR as string)
Docmd.OpenForm FR
End Function
La stessa cosa per puoi farla per i report:
Public Function ApriReportSecondario(RP As String)
DoCmd.OpenReport RP, acViewNormal
End Function
Chiudi il db secondario dopo averlo convertito in MDE e apri il principale.
Qui metterai il riferimento al secondario MDE anche se nella lista non sono
presenti i database mde; scegli tutti i file e poi il db mde.
Se dal principale chiami la funzione Call
ApriMascheraSecondaria("NomeMascheraSecondaria") si aprirą la maschera del
secondo DB che ha il nome passato alla funzione. Lo stesso se chiami Call
ApriReportSecondario("NomeReportSecondario"). Non funziona se nel db
principale esiste lo stesso nome di maschera o di report.
Facci sapere.
Ciao, Carlo

 ha scritto nel
messaggio news:u%kxa.187925$K35.4...@news2.tin.it...

Ho fatto delle prove e cerco di capire bene la logica di funzionamento:
- Se questa maschera deve eseguire una query, la cerca sul db corrente o sul
principale?
- Se un report lo eseguo all'interno della maschera chiamata la cerca sul db
corrente o sul principale?
- I dati presenti su tabelle collegate li cerca sul db corrente o sul
principale? (mi sembra che legga le tabelle dal principale, quindi i
collegamenti a tabella sul secondario possono servire solo per lavorare su
questo in fase di aggiornamento del database)
Ciao, Sandro


Non devi preoccuparti di nulla. Se il nome delle maschere secondarie o dei
report sono differenti da quelli presenti nel principale, tutto fila liscio.
Se poi vuoi seguire il codice passo passo, metti un punto di interruzione al
codice della maschera che vuoi monitorare e segui i vari passaggi.
Le tabelle collegate al secondo database sono e restano quelle del db
secondario.
Ovviamente non conosco la struttura dei due db.
A scopo di studio puoi mandarmi i due (o quattro) db zippati.
Ciao, Carlo


Ad esempio mi succede questo:
Ho questa struttura: DB0 ha come riferimenti DB1 e DB2. In pratica ho un BE
esterno e ho unificato due FE autonomi (DB1 e DB2) e voglio gestirli
entrambi da DB0.
Ho messo su una mia barra dei menu in DB0 due diverse funzioni per
richiamare una maschera in DB1 o in DB2. Dal menu richiamo DB1 e va bene;
poi richiamo DB2 e mi segnala che non trova la funzione. Se prima riduco a
icona la maschera in DB1 allora riesco da menu ad entrare in DB2. Perché?
Inoltre, lavorando in DB1 ignora le proprie tabelle collegate e invece le va
a cercare in DB0. Quindi sembra che la maschera corrente è DB1 ma CurrentDb
è DB0.
Ciao, Sandro


Mi sa che hai fatto un groviglio di riferimenti incrociati (circolari).
Anche le funzioni che aprono le maschere devono avere nomi diversi.
Ad esempio se dal db0 chiami una funzione "ApriMaschera" che si trova sul
db1 non puoi utilizzare lo stesso nome di funzione anche sul db2.
Tutto ciň č vero se i due db (DB1 e 2) sono usati come riferimento in DB0.
Anche le tabelle allegate mi sembrano in comune quindi dovrai usare
l'accesso condiviso e non esclusivo per tutti i db.
Di piů non so dirti se non vedo le strutture.
Ciao, Carlo