Forms

3.8 Associare un documento Word ad un record e modificarlo da una form.
  Vincenzo Turturro
(D)
Come si può associare un documento Word ad un record di una tabella Access e consentire all'utente di accedere al documento e modificarlo da una form?

(R)
Una necessità che si incontra abbastanza di frequente, soprattutto avendo a che fare con utenti "smaliziati" nell'utilizzo di Office, è quella di consentire, da una form di interfaccia verso i record di una tabella Access, di poter accedere ad un documento Word o ad un foglio Excel ed eventualmente modificarne il contenuto.

Access offre la possibilità di fare ciò utilizzando la tecnica OLE (Object Linking end Embedding), che consente di legare ad un campo di un record di una tabella Access, un riferimento ad un "oggetto" esterno al database, gestito da un'applicazione, non necessariamente Microsoft, registrata nel sistema; è quindi possibile legare ad un record documenti Word, fogli Excel, suoni, filmati ed altro.

La denominazione di tale tecnica (la traduzione è "Collegamento ed Inclusione di Oggetti") offre lo spunto per puntualizzare una distinzione da tenere ben presente ogni volta che si realizza un collegamento OLE tra un campo in una tabella Access ed un oggetto esterno.
Infatti, un oggetto OLE può essere associato come "incluso" oppure come "collegato"; nel primo caso l'oggetto viene associato una volta per tutte al campo "copiando" in esso il contenuto dell'oggetto stesso; nel secondo caso invece, nel campo viene memorizzato un riferimento all'oggetto, ed il contenuto dell'oggetto non viene trasportato nel campo.

Questa diversa modalità di associazione ha un'importante conseguenza: un campo associato ad un oggetto OLE "incluso", consente di accedere, per esempio, ad un documento Word da una form Access ed anche di modificarne il contenuto, ma tali modifiche non vengono riportate nel documento originale; allo stesso modo, se il documento originale viene modificato usando Word, le modifiche non saranno visibili accedendo al documento tramite Access.

Un campo associato ad un oggetto OLE "collegato" invece, consente di accedere ad un documento Word da una form Access ed anche di modificarne il contenuto, riportando nel documento originale le modifiche apportate; allo stesso modo, se il documento originale viene modificato usando Word, le modifiche sono visibili anche accedendo al documento tramite Access.

Veniamo adesso ai passi necessari per gestire oggetti OLE in Access.
  - Nella struttura della tabella aggiungere un campo di tipo "Oggetto OLE"
  - Nella form da cui si accede ai record della tabella, aggiungere un controllo "Cornice oggetto associato", impostando come origine controllo il campo OLE definito sulla tabella.

Questo è quanto serve per offrire all'utente un'interfaccia che gli consenta di accedere a oggetti esterni al database.
Infatti a questo punto, aprendo la form in visualizzazione dati, con click destro sul controllo associato al campo "Oggetto OLE", si apre un menù che consente di associare il controllo stesso (e quindi il campo della tabella sottostante) con un oggetto già esistente da qualche parte (anche in LAN), oppure creato al volo con l'applicazione associata al tipo di oggetto.
Con doppio click invece, se è già stata effettuata l'associazione ad un oggetto esistente, si apre l'applicazione registrata come associata all'oggetto (Word per i documenti, Excel per i fogli, ecc.)
E' tramite questa interfaccia che viene selezionata anche la modalità di associazione dell'oggetto ("incluso" o "collegato").

Oggetto "collegato":
  - click dx sul controllo associato al campo OLE
  - "Inserisci oggetto"
  - spuntare la check "Crea da file"
  - spuntare la check "Collegamento"

Oggetto "incluso" creato "al volo":
  - click dx sul controllo associato al campo OLE
  - "Inserisci oggetto"
  - spuntare la check "Crea nuovo oggetto"

Oggetto "incluso" già esistente:
  - click dx sul controllo associato al campo OLE
  - "Inserisci oggetto"
  - spuntare la check "Crea da file"
  - NON spuntare la check "Collegamento"


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.