Newsgroup: it.comp.appl.access
Titolo: Casella di controllo campo modulo e dati boolean

Chiedo il vostro aiuto nella soluzione di un problema che non riesco
proprio a risolvere.
Per la gestione dei tesseramenti del mio gruppo sportivo ho creato una
tabella nella quale ho inserito alcuni campi del tipo Si/No
(Vero/Falso). Inserisco i dati in questi campi attraverso una maschera
che contiene delle caselle di controllo del tipo acconsento/non
acconsento che hanno come origine i campi della tabella e di default
sono poste a False.
 
Tramite VBA esporto tali dati in un template Word di sola lettura che
richiamo dalla maschera e che contiene dei campi modulo e delle
caselle di controllo collegate al db attraverso i segnalibri. 
Quando cerco di esportare nelle caselle di controllo del campo modulo
del modello Word i dati del tipo Si/No provenienti dai campi del db
(Acc e NoAcc) che seleziono attraverso le CheckBox poste sulla
maschera in ogni caso ottengo sempre il valore 0.
(ho provato anche ad effettuare una moltiplicazione *-1 per gestire i
dati booleani di Access come quelli di VBA )
Ecco il codice che sto utilizzando per generare il documento 
....
With doc
  'per i campi modulo testo  
  .Bookmarks("nominativo").Select  
  word.Selection.Text = Cognome & " " & Nome
  ....
  ....
  'per le caselle di controllo
  .Bookmarks("Controllo1").Select
  word.Selection.FormFields("Controllo1").CheckBox.Value = Acc 
  .Bookmarks("Controllo2").Select
  word.Selection.FormFields("Controllo2").CheckBox.Value = NoAcc 
End With
Indipendentemente dai valori presenti nei campi del db Acc e NoAcc
le caselle di controllo nel doc word sono sempre unchecked, quindi il
db passa sempre e solo 0, mentre se imposto manualmente il
CheckBox.Value a True tutto funziona egregiamente.
Per favore ditemi dove sbaglio.   

"Cyric" <cyri...@THISmp4.it> ha scritto nel messaggio 
news:4jh9r09gke9nrjemi...@4ax.com...

Prova ad usare un IF o un IIF.
...CheckBox.Value = IIF(Acc = 0,False,True)
Ciao, Carlo 


Grazie Carlo,
ho provato con ...CheckBox.Value = IIF(Acc = 0,False,True) il db
continua a restituirmi il valore zero qualsiasi sia la selezione delle
checkbox... per cui Acc è sempre = 0 e le caselle di controllo nel
template word restano comq unchecked
il problema sta nel passaggio dati tra il campo si/no del db e le
caselle di controllo sul template, non essendo possibile specificare
direttamente un origine.......
 
unica alterbativa: riscrivere tutta la procedura daccapo......

"Cyric" <cyri...@THISmp4.it> ha scritto nel messaggio 
news:cfobr05lbomfti040...@4ax.com...

 Non credo.
Prova ad usare -1 e 0 oppure Vero Falso
Inoltre il riferimento ad ACC rendilo esplicito Forms!TuaForm!TuaCombo
Ancora: segui il codice passo passso (attiva il punto di interruzione) 
durante la sua esecuzione e controlla i valori restituiti.
In ultimo apri il file di Word e dal modulo vba leggiti le proprietà della 
CheckBox...si scoprono cose interessanti...specie creando una macro e 
leggendo il codice generato. In questo caso avvia il registratore di macro, 
cecca la CheckBox, interrompi la registrazione e leggi cosa ha scritto.
Ciao, Carlo 


Ho risolto, ora funziona tutto correttamente!!!
Ti ringrazio dell'aiuto e spero di poter contare anche in futuro sulle
tue preziose dritte.
Ciao