Access gestione database esterno

di il
13 risposte

Access gestione database esterno

Buon giorno a tutti.
Vorrei porvi un quesito tecnico…
Dovrei da vba di un database, leggere un controllo di una maschera attiva in un altro database. Come posso fare?

13 Risposte

  • Re: Access gestione database esterno

    Spiegaci perché ti trovi a dover fare una cosa simile... che molto chiaramente ti dico essere assurda... se non perché causata da errori di ingegneria del sistema...
  • Re: Access gestione database esterno

    Mi spiego meglio…
    Ho due database differenti .accdb per i quali non posso collegare tabelle per motivi x.
    Nel db1 ho tabella1 con maschera1 con controllo id1
    Nel db2 ho tabella2 con maschera2 con controllo id2
    Normalmente lavoro con db1. Maschera1 è attiva
    Ora vorrei con una macro vba (scritta sul db2) leggere e scrivere il record da tabella1 filtrata per il controllo id1 a tabella2
    Ho creato una connessione ADO ma non so come filtrare il recordset della tabella1 con il controllo id1
  • Re: Access gestione database esterno

    Buonasera, molte volte è la difficoltà è, non tanto nel concretizzare una soluzione ad un'esigenza, quanto il trovare la soluzione più semplice da applicare... E se è difficile trovarla per chi conosce tutte le 'x' del problema, figurati quanto possa esserlo per chi non le conosce...
    A 'fiuto' potrei dirti che se entrambe le istanze access sono sulla stessa macchina potresti usare Getobject per accedere all'istanza del db1 e poi ai restanti oggetti maschera e controlli id1... Ma è come voler cambiare una lampadina girando il palazzo che c'è intorno... Se chiarisci meglio la dinamica forse potresti trovarne giovamento...
  • Re: Access gestione database esterno

    Stai buttando informazioni quasi casuali...
    Il fatto di non poter creare LinkedTable non significa nulla se poi invece vai ad aprire con Ado, nemmeno DAO, una connessione...
    Queste sono 2 cose che cozzano... molto.

    In ogni caso puoi aprire una query su un database esterno senza alcun codice aggiuntivo...
    Apri qbe e definisci l'origine o provenienza... si traduce in:
    SELECT * FROM ExternalTable IN "C:\Test.mdb"
    Tuttavia ribadisco che stai facendo una cosa molto discutibile...
  • Re: Access gestione database esterno

    Il db2 si trova in una chiavetta perché non deve essere presente in determinate situazioni.
    La tabella2 viene popolata dalla tabella1 ma con dei dati in più che vengono elaborati solo nel db2 con altre maschere.
    Quello che da macro nel db2 dovrei eseguire è importare i dati della tabella1 alla tabella2 quando il record in tabella2 ancora non esiste. Ho utilizzato un recordset che però dovrei filtrare tramite un controllo di una maschera attiva nel db1.
    Spero di aver chiarito i motivi x.
  • Re: Access gestione database esterno

    Ho sbagliato a scrivere. Utilizzo Dao come connessione
  • Re: Access gestione database esterno

    AndreaSartori ha scritto:


    Il db2 si trova in una chiavetta perché non deve essere presente in determinate situazioni.
    ....
    Spero di aver chiarito i motivi x.
    Direi che era chiarissimo fin dall'inizio...
  • Re: Access gestione database esterno

    Cioè quando inserisci la chiavetta dovresti aggiungere nella tabella2 del db2, i record della tabella1 del db1 (filtrati dal controllo id1 della maschera1), che non sono ancora presenti in tabella2 del db2? Mmmmm .puoi accedere alla struttura del db1?
  • Re: Access gestione database esterno

    Quando inserisco un nuovo record dal db1 nella tabella1 dalla maschera1 apro il db2. Qui, all'apertura del db2 una macro dovrebbe capire intanto se il record appena creato già esiste nella tabella2 e se non esiste, creare un nuovo record in tabella2. Per capire se non esiste volevo filtrare il recordset dalla tabella1 con il controllo della maschera1 ancora attiva nel db1 con il controllo id1
  • Re: Access gestione database esterno

    Quello che hai detto.si fa con 1 query senza tutte quelle contorsioni da circo...
    Query Insert con clausola NOT EXIST oppure 2 query come ti ho detto per verificare l'esistenza... ovviamente adeguata e poi query inserto tutto dal DB che stai usando non ha alcun senso rimbalzare come una pallina db1 e db2
  • Re: Access gestione database esterno

    Ok. Va bene. Ma devo creare e lanciare la/le query nel db2? Se si, nei criteri come faccio ad inserire un controllo di un altro dB?
  • Re: Access gestione database esterno

    Se hai accesso al primo DB potresti accodare, quando lo selezioni, in una tabella 'logselezioni' l'ID correntemente selezionato, per poi linkarlo / leggerlo dall'altro DB.

    Oppure dal secondo db accedi al primo con 'getobject' e arrivi fino al controllo in maschera.
  • Re: Access gestione database esterno

    Grazie a tutti. Ho risolto con la proprietà recordsource. Nella maschera che utilizzo in dB2 inserisco come origine record la tabella1 del db1 e posso avere tutti i dati da maneggiare. Come supponevo Alex, la soluzione più semplice è quella ottimale... Grazie a tutti per il vostro tempo...
Devi accedere o registrarti per scrivere nel forum
13 risposte