Access apertura maschera definita in un altro db

di il
6 risposte

Access apertura maschera definita in un altro db

Ciao a tutti amici,
vi chiedo un aiuto,
ho due mdb : a.mdb e b.mdb

in a.mdb
c'è una maschera con un bottone dove al click di quel bottone vorrei aprisse la maschera presente in b.mdb.
Ho definito la funzione di apertura di quella maschera in un modulo in b.mdb:

Public Function ApriForm()
DoCmd.OpenForm "frm_cognome"
End Function

come faccio a richiamare la funzione apriform() al click del bottone presente nella maschera di a.mdb?

in a.mdb sono andata --> riferimwnri e attraverso a sfoglia ho importato b.mdb in modo tale che a veda tutti gli oggetti di b.

Riuscite a darmi un consiglio?
Grazie mille!

6 Risposte

  • Re: Access apertura maschera definita in un altro db

    Perchè di grazia devi aprire una Maschera in un'altro Database...?

    Se ne sentono tante, porta pazienza se ti chiedo una spiegazione... ma 9 su 10 sono errori concettuali...!
  • Re: Access apertura maschera definita in un altro db

    Ahah piacere Elisa!
    E' un esercizio che sto facendo per studio...però ho letto che si può fare

    ho preso spunto da questo articolo:

    http://support.microsoft.com/default.aspx?scid=kb;de;D39603

    poi però non mi fa vedere come poter richiamare la funzione nell'altro db...
  • Re: Access apertura maschera definita in un altro db

    Si può fare tutto... ma devi capirne i concetti di base.
    Un DB esterno è un'oggetto Database al quale puoi arrivare istanziando un'oggetto Database, sfruttando l'interfaccia COM.

    Quindi a seconda di cosa devi fare realmente ci sono differenti tecniche da usare.
    Quella di inserire nei RIFERIMENTI un DB è la meno indicata...!

    Crea un nuovo oggetto database, e su quello poi agisci...
    
    Dim objAccess As Access.Application
    Set objAccess = New Access.Application
        With objAccess
                .OpenCurrentDatabase "C:\b.MDB"
                .DoCmd.OpenForm "NomeMaschera"
                Do While Len(.CurrentDb.Name) > 0
                    DoEvents
                Loop
         End With
    Poi ci sono dei "MA"... nel senso che è risaputo che questo potrebbe non far apparire in primo piano l'applicazione appena aperta, è un baco che si risolve usando funzioni del Sistema Operativo attraverso chiamate API.
    Di fatto poi l'oggetto deve essere chiuso e distrutto...

    Ora prova a ragionarci ed a comprenderne la struttura...
  • Re: Access apertura maschera definita in un altro db

    Guarda Alex,

    sono riuscita a richiamare in a.mdb la funzione definita nel modulo b.mdb

    evento _click del bottone aprimaschera b ho richiamato la funzione ApriForm
    
    ApriForm
    
    modulo creato in b.mdb
    
    Public Function ApriForm()   
        DoCmd.OpenForm "frm_cognome"
     End Function
    
    funziona! Concettualmente non va bene?
  • Re: Access apertura maschera definita in un altro db

    Non va bene concettualmente in quanto quello che hai fatto richiede come ti spiegavo i RIFERIMENTI al file MDB, un po come si fa per le DLL esterne...!
    Qual'è il problema... che se sposti il file MDB o hai Versioni differenti da quella installata sul PC di Test non funziona più nulla.

    Diciamo che quello che hai fatto è un giochetto che si può far vedere ai ragazzi di scuola... ma di certo non si sviluppa in quel modo.
  • Re: Access apertura maschera definita in un altro db

    Scisami se ti chiedo altre spiegazioni ma col fatto che sto studiando un po' access vorrei imparare molte cose, in quello che mi hai detto tu, ossia di creare un oggetto database, in questo caso se dovessi spostare il db mi è sufficiente cambiare il path ?
Devi accedere o registrarti per scrivere nel forum
6 risposte