Newsgroup: it.comp.appl.access
Titolo: Raccolta dati con Word

Il mio utente vuole mandare in giro un file Word protetto con una serie
di campi segnalibro per raccogliere dati.
Poi vorrebbe che io realizzi un programma per estrarre i dati dai file
che ritorneranno compilati.
Vorrei sapere se qualcuno ha esperienze in merito ed ha dei pezzi di
codici di esempio ?
Se l'idea č valida ?
Grazie fin d'ora-
 
--------------------------------------------------------------------
Sergio de Pretis                     E-mail 
depr...@csgen.it


Ho trovato nell'help di VBA per Word: "Oggetto Variable" che recita:
Rappresenta una variabile memorizzata come parte di un documento. Le
variabili di documento sono necessarie per mantenere le impostazioni delle
macro tra diverse sessioni. L'oggetto Variable è un membro dell'insieme
Variables. Nell'insieme Variables sono incluse tutte le variabili di
documento di un documento o di un modello.
Utilizzo dell'oggetto Variable
Per restituire un singolo oggetto Variable, utilizzare Variables(indice),
dove indice è il nome della variabile di documento o il numero di indice.
Nell'esempio seguente viene visualizzato il valore della variabile di
documento Temp del documento attivo.
MsgBox ActiveDocument.Variables("Temp").Value
Il numero di indice rappresenta la posizione della variabile di documento
nell'insieme Variables. All'ultima variabile aggiunta all'insieme Variables
viene assegnato il numero di indice 1; alla penultima variabile aggiunta
all'insieme viene assegnato il numero di indice 2 e così via. Nell'esempio
seguente viene visualizzato il nome della prima variabile di documento del
documento attivo.
MsgBox ActiveDocument.Variables(1).Name
Per aggiungere una variabile a un documento, utilizzare il metodo Add.
Nell'esempio seguente viene aggiunta al documento attivo una variabile di
documento chiamata "Temp" con il valore 12.
ActiveDocument.Variables.Add Name:="Temp", Value:="12"
Se si aggiunge una variabile di documento con un nome già esistente
nell'insieme Variables, verrà generato un errore. Per evitare questo errore,
è necessario enumerare l'insieme prima di aggiungere una qualsiasi variabile
nuova. Nell'esempio seguente, se la variabile di documento Blu esiste già
nel documento attivo, le viene assegnato il valore 6. Se non esiste già,
viene aggiunta al documento e le viene assegnato il valore 6.
For Each aVar In ActiveDocument.Variables
    If aVar.Name = "Blu" Then num = aVar.Index
Next aVar
If num = 0 Then
    ActiveDocument.Variables.Add Name:="Blu", Value:=6
Else
    ActiveDocument.Variables(num).Value = 6
End If
Osservazioni
Le variabili di documento non sono visibili all'utente a meno che non venga
inserito un campo DOCVARIABLE con il nome di variabile valido. Nell'esempio
seguente viene aggiunta al documento attivo una variabile di documento
chiamata "Temp" e viene quindi inserito un campo DOCVARIABLE per
visualizzare il valore della variabile.
With ActiveDocument
    .Variables.Add Name:="Temp", Value:="12"
    .Fields.Add Range:=Selection.Range, Type:=wdFieldDocVariable,
Text:="Temp"
End With
ActiveWindow.View.ShowFieldCodes = False
Per aggiungere una variabile di documento a un modello, è necessario aprire
il modello come documento utilizzando il metodo OpenAsDocument. Nell'esempio
seguente il nome utente (dalla finestra di dialogo Opzioni) viene
memorizzato nel modello applicato al documento attivo.
ScreenUpdating = False
With ActiveDocument.AttachedTemplate.OpenAsDocument
    .Variables.Add Name:="UserName", Value:=Application.UserName
    .Close SaveChanges:=wdSaveChanges
End With
I passi sono:
- creare il documento;
- inserire nel documento i campi {docvariable "nomevariabile"} es. nome:
{docvariable "nome"}
- creare una form in VBA con i controlli per inserire i dati e nel bottone
Ok (per esempio) inserisci il codice:
Private Sub OkButton_Click()
 ActiveDocument.Variables("nome") = Me.nome
 ActiveDocument.Variables("cognome") = Me.cognome
 ActiveDocument.Variables("data_nascita") = Me.data_nascita
 Selection.WholeStory
 Selection.Fields.Update
 Selection.Collapse Direction:=wdCollapseEnd
End Sub
Poi il resto... Mancia!
Ciao.

 Se l'idea č valida ?


Il mio utente vuole mandare in giro un file Word protetto con una serie
di campi segnalibro per raccogliere dati.
Poi vorrebbe che io realizzi un programma per estrarre i dati dai file
che ritorneranno compilati.
Io ho gią fatto la cosa con EXCEL facendo riferimento alle celle, vorrei
sapere se qualcuno ha esperienze in merito ed ha dei pezzi di codici di
esempio ?
Se l'idea č valida ?
Se qualcuno l'ha fatto con EXCEL facendo riferimento ai nomi delle celle
invece che all'inidirizzo di riga e colonna ?
Grazie fin d'ora
--------------------------------------------------------------------
Sergio de Pretis                     E-mail 
depr...@csgen.it
Via Meli, 18                         phone / fax : (39) 02 2592400
20127 MILANO -  ITALY                mobile phone: (39) 0335 8381706

invece che all'inidirizzo di riga e colonna ?
Non capisco la differenza. E' vero che fare riferimento a dei "named
range" e' intuitivamente piu' facile, ma dal punto di vista della
programmazione chiamare un range per nome o per indirizzo comporta
esattamente la stessa sintassi.
Spiegati meglio
-- 
Ciao,
Giovanni