Precedente :: Successivo |
Autore |
Messaggio |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 22 Feb 2008 16:02 Oggetto: ACCESS - report da una maschera |
|
|
dopo 1000 prove, sono giunto alla conclusione che un campo di un report può contenere un campo di una tabella (e ci mancherebbe ...), ma NON PUO' riferirsi ad un campo di una maschera.
Nella fattispecie, vorrei stampare il contenuto della maschera che ho appena riempito ma ... non ci riesco: devo prima aggiornare il DB e poi tornare al record generato dalla mia maschera per stamparne il contenuto. Una bella menata ...
... o no ?
Grazie
Alberto |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 22 Feb 2008 23:19 Oggetto: |
|
|
eh sì una bella menata...
soluzione non elegante ma veloce:
.1 scegli la maschera di cui vuoi stampare il contenuto
.2 scegli "struttura"
.3 dalla casella degli strumenti, aggiungi un pulsante di comando
.4 scegli "Operazioni su maschere" [riquadro sx] e "Stampa una maschera [riquadro dx] ->"Avanti"
.5 ti è proposto il nome della tua maschera -> "Avanti"
.6 aspetto del pulsante "stampante" -> "Avanti"
.7 Nome comando cambioalo in "cmdStampa" -> "Fine"
.8 click dx sul pulsate e scegli "Proprietà"
.9 dovrebbe apparirti un form già posizionato sulla lingetta "Evento" [altrimenti sceglila tu]
.10 click sx su "[Routine evento]" -> appaiono due pulsanti a dx
.11 click sul pulsante con tre puntini
.12 ti appare:
Codice: |
Private Sub cmdStampa_Click()
On Error GoTo Err_cmdStampa_Click
Dim stDocName As String
Dim MyForm As Form
stDocName = "nome_della_tua_maschera"
Set MyForm = Screen.ActiveForm
DoCmd.SelectObject acForm, stDocName, True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_cmdStampa_Click:
Exit Sub
Err_cmdStampa_Click:
MsgBox Err.Description
Resume Exit_cmdStampa_Click
End Sub
|
.12 apporta le modifiche che ho segnalato con le punte di freccia
Codice: |
Private Sub cmdStampa_Click()
On Error GoTo Err_cmdStampa_Click
Dim stDocName As String
Dim MyForm As Form
stDocName = "nome_della_tua_maschera"
Set MyForm = Screen.ActiveForm
DoCmd.SelectObject acForm, MyForm.Name, False '<<<<<<<<<<<<<<<
DoCmd.PrintOut acSelection '<<<<<<<<<<<<<<<
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_cmdStampa_Click:
Exit Sub
Err_cmdStampa_Click:
MsgBox Err.Description
Resume Exit_cmdStampa_Click
End Sub
|
.13 salva
.14 prova
.15 quando premi il pulsante, sulla stampante di default è stampata la tua maschera con i dati immessi [compreso il pulsante ... ecco l'ineleganza...]
NOTA BENE:
occhio che al momento del click sul pulsante, i dati sono inseriti nel DB |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 22 Feb 2008 23:34 Oggetto: |
|
|
azz... ci passerò il weekend !
Graz
A. |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 22 Feb 2008 23:48 Oggetto: |
|
|
maraggos ha scritto: | azz... ci passerò il weekend !
Graz
A. |
ma no!
ci ho messo più tempo a scrivere le istruzioni che a compiere l'operazione  |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 23 Feb 2008 15:09 Oggetto: |
|
|
grazie lupo, ho provato, ed effettivamente stampa la maschera: non era esattamentr quello che cercavo ... ma non si può sempre avere tutto
Approfitto ancora di te per una ulteriore domandina: in un interruttore ho messo al click la seguente [Routine Evento]
Citazione: | Private Sub Interruttore24_Click()
If [Forms]![pagamento]![EXTRA] > 0 Then
DoCmd.OpenReport "lettera_1"
Else
DoCmd.OpenReport "lettera_2"
End Sub
|
In risposta mi si inchioda con il messaggio:
Citazione: | L'espressione su click (...) errore di comunicazione con il server OLE o con il controllo ActiveX.
* L'espressione non corrisponde al nome di una macro, di una funzione definita dall'utente oppure a [Routine Evento] |
... ma come non corrisponde !!!!
non sarà qualche settaggio farlocco nel mio windows e i suoi casini coi server ole ?
Grazie ancora
Alberto |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 24 Feb 2008 05:23 Oggetto: |
|
|
naa
problema di sintassi:
Codice: |
Private Sub Interruttore24_Click()
If [Forms]![pagamento]![EXTRA] > 0 Then
DoCmd.OpenReport "lettera_1"
Else
DoCmd.OpenReport "lettera_2"
End If '<<<<<<< MANCA QUESTO
End Sub
|
|
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 24 Feb 2008 11:14 Oggetto: |
|
|
... però purtroppo mi dà lo stesso errore !
Ho sostituito il tutto con un semplice DoCmd.Beep ma ... nisba: nella routine non ci entra proprio !
Il baco è dunque a monte: domani provo su un'altra macchina, tanto per eliminare i miei sospetti ...
Grazie greywolf
Alberto |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 24 Feb 2008 19:05 Oggetto: |
|
|
Occhio, è solo un'ipotesi:
Alla luce di quanto dici, cioè che non entra nemmeno nella routine evento, mi fa pensare che il controllo activex, contenente l'interruttore, sia corrotto o, per qualche motivo, sia stato sovrascritto.
Non so che versione di office hai installato, io proverei a reinstallarlo.
Nel setup c'è una funzione che ti permette di riparare l'installazione.
E' un tentativo... |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 25 Feb 2008 10:34 Oggetto: |
|
|
un vero psicodramma !
Avevo già provato a riparare, disinstallare, reinstallare access ... senza risultati.
Poi ho sostituito quella [Routine Evento] con una più banale "condizione" nella macro di stampa della lettera ma sempre con lo stesso messaggio di errore Citazione: | "Chiudere il server OLE e riavviarlo all'esterno di mio_database, quindi ritentare l'operazione originale in mio_database" |
Oggi ho trasferito il tutto su un'altra macchina, Win Vista e Access 2007, sicuro di me e cosa ottengo ?
Citazione: | "Chiudere il server OLE e riavviarlo all'esterno di mio_database, quindi ritentare l'operazione originale in mio_database" |
Inutile dire che ho googlato il messaggio, scoprendo che non è così raro però ... risposte risolutive ... nemmeno l'ombra !
(desperate programmer) ! |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 25 Feb 2008 13:45 Oggetto: |
|
|
Calma!
se non violi alcuna privacy, puoi spedirmi il database, basta una copia con quattro dati, ma con le procedure e vediamo se con W2K e Office 2000 dà lo stesso problema.
Pur non essendo significativa come prova, magari si trova un aggiramento dell'ostacolo.
La mia mail è in chiaro... fatti riconoscere nell'oggetto, ho dei filtri antispam che sono peggio di tre cerberi messi insieme  |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 25 Feb 2008 15:39 Oggetto: |
|
|
fatto, thanks
Alberto |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 26 Feb 2008 21:27 Oggetto: |
|
|
ti ho spedito due mail... |
|
Top |
|
 |
|