Newsgroup: it.comp.appl.access
Titolo: Campo valorizzabile con VBA in report (forse banale ma...)

Ciao a tutti,
ho da sottoporre, al NG, un problema.
Desidero inserire, in un report, un campo valorizzabile attraverso VBA,
ma tutti i miei tentativi sono stati vani; ho provato con caselle di
testo ed etichette, ma nulla.
Mi rendo conto che č piuttosto banale, ma a me no riesce di valorizzare
il campo se non attraverso le tabelle.
Potreste indicarmi un piccolo esempio di codice in grado di valorizzare
una casella di testo all'interno del report.
Grazie per la disponibilitą che vorrete concedermi.
Michele.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Immaginiamo che in una casella tu voglia avere, tanto per semplicità,
il 20 percento di una casella che contiene un dato di tabella, per
esempio [importo].
Allora, aggiungi una casella e nelle Proprietà, Dati, Origine controllo,
scrivi:
=[importo]*20/100
Se vuoi la somma delle caselle [importo] e [iva], scrivi:
=[importo]+[iva]
Se invece hai un problema specifico, fallo sapere.
Buon lavoro
Riccardo (l'unico italiano che non segue la partita)


 Riccardo (l'unico italiano che non segue la partita)
Hai fatto bene!!!!!!!!!!!!!!!!!!
A proposito di report a me succede una cosa assurda:
in un report spezzato su 3 pagine ho diversi campi calcolati e campi che
fanno riferimento a campi calcolati; se apro il report a video vedo dei
valori errati, ma se stampo è tutto corretto. Ho provato a semplificare il
report spezzandolo in due, ma niente...
Ho provato col debug per vedere se era questione di tempo di calcolo, ma ho
notato che visualizzando in un msgbox i valori che mi interessano al
caricamento della prima pagina li vedo giusti, poi passando sulle altre vedo
il valore riferito al controllo che precede posizionalmente quello giusto.
Esempio:
Totale spese  = 100
Saldo spese = 20
Controllo che fa riferimento a Saldo spese = 100
Il tutto è con Access 97, poi ho provato a convertire il db in 2000, ma non
è cambiato nulla.
AIUTATEMI!!!
Ilaria

 Riccardo (l'unico italiano che non segue la partita)
Ti ringrazio per la disponibilità,
quello che desidero fare, in realtà, è stampare 3 copie di un report
con in calce ad ognuna una differente descrizione.
Esempio:
I° copia: "Copia uso ufficio"
II° copia: "Copia uso archivio"
III° copia: "Copia uso personale"
Ho pensato di definire, nel report, una casella di testo che, nel mio
progetto, avrei modificato avvalendomi del VBA ma le prove sono
naufragate.
Questo e quanto.
Ciao, Michele.
(PS: per come è andata, hai impiegato meglio il tuo tempo)


 Ilaria
Premesso che, nello specifico, non solo una persona molto
competente, mi viene da pensare che il controllo della maschera
che genera il report (parto dall'assunto che il report è generato
da una maschera) punta/mostra la colonna sbagliata.
Se così fosse, dovresti ricontrollare il campo "Colonna Associata"
delle proprietà.
Come direbbe ... : "D + nin Zò".
Ciao, Michele.


Scusate l'artificio per riconquistare la pole, ma per me è un problema
bloccante.
Ciao a tutti, Michele


Scusate l'artificio per riconquistare la pole, ma per me è un problema
bloccante.
) Quello che desidero fare, in realtà, è stampare 3 copie di un report
) con in calce ad ognuna una differente descrizione.
) 
) Esempio:
) I° copia: "Copia uso ufficio"
) II° copia: "Copia uso archivio"
) III° copia: "Copia uso personale"
) 
) Ho pensato di definire, nel report, una casella di testo che, nel mio
) progetto, avrei modificato avvalendomi del VBA ma le prove sono
) naufragate.
) 
) Questo e quanto.
Ciao a tutti, Michele


 ) 
Scusa se ho aspettato tanto a rispondere, ma ho avuto delle giornatine
piuttosto piene.
Direi che il tuo tentativo è azzeccato.
Io ho fatto così: ho messo nella maschera da cui stampo una casella
che si chiama [testo24] (ma [pippo] va bene lo stesso); nel report ho
messo una casella di testo e, nella voce Origine controllo, ho scritto:
=forms![nome della maschera]!testo24
a questo punto, nella maschera, ho un pulsante con queste istruzioni:
Testo24 = "copia uso ufficio"
DoCmd.OpenReport "ordine1"
Testo24 = "copia uso archivio"
DoCmd.OpenReport "ordine1"
Testo24 = "copia uso personale"
DoCmd.OpenReport "ordine1"
e così il report viene stampato ogni volta con una scritta diversa.
Spero che vada bene.
Buon lavoro
Riccardo


 Riccardo
Ciao Riccardo,
ti ringrazio, ancora una volta, per la disponibilità concessami.
Alla fine, dopo una infinita serie di prove, ho risolto il problema come
segue:
1. Ho definito una variabile globale (conta);
2. Nella maschera, richiamo il report per 3 volte e ad ogni richiamo
faccio incrementare la variabile (conta) di 1;
3. Nel report, analizzo la variabile globale e, sulla base del suo
valore, imposto il ControlSource tramite VBA.
Grazie ancora, Michele. 
