Discussione:
OpenReport
(troppo vecchio per rispondere)
Francescodiassisi
2009-10-22 09:32:01 UTC
Permalink
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
la terza la vuole stampare, ma il programma si blocca. Eccole qui:

DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal

Forse il passaggio dall'Update all'OpenReport è troppo veloce? Grazie! : )
giorgio rancati
2009-10-22 09:55:15 UTC
Permalink
Post by Francescodiassisi
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal
Forse il passaggio dall'Update all'OpenReport è troppo veloce?
no, forse è meglio che descrivi come si blocca il programma, quali mesaggi
di errore ricevi ecc.

Ciao
--
Giorgio Rancati
[Office Access MVP]
Francescodiassisi
2009-10-22 11:08:17 UTC
Permalink
Ciao Giorgio, come dicevo il pgm non mi dà errori. La tabella prodotta dalla
query produce una tabella grandina, 2000 record con una sessantina di campi.
Quando clicco il pulsante con il programmino sotto, la maschera rimane
bloccata. Non vanno più neanche gli altri pulsanti ( quello di uscita per
esempio ). Per stampare il report devo andare nella finestra del database e
aprirlo manualmente.
Gli stessi comandi eseguiti su una tabella più piccola non danno problemi ...
Post by giorgio rancati
Post by Francescodiassisi
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal
Forse il passaggio dall'Update all'OpenReport è troppo veloce?
no, forse è meglio che descrivi come si blocca il programma, quali mesaggi
di errore ricevi ecc.
Ciao
--
Giorgio Rancati
[Office Access MVP]
.
giorgio rancati
2009-10-22 11:45:16 UTC
Permalink
Post by Francescodiassisi
Ciao Giorgio, come dicevo il pgm non mi dà errori. La tabella prodotta dalla
query produce una tabella grandina, 2000 record con una sessantina di campi.
Quando clicco il pulsante con il programmino sotto, la maschera rimane
bloccata. Non vanno più neanche gli altri pulsanti ( quello di uscita per
esempio ). Per stampare il report devo andare nella finestra del database e
aprirlo manualmente.
questo significa che il flusso del programma non arriva all'istruzione
Docmd.Openreport.
Metti un punto di interruzione nella prima riga con DoCmd.OpenQuery e poi
esegui passo per passo (Pulsante F8) le istruzioni e guarda dove si blocca.
Post by Francescodiassisi
Gli stessi comandi eseguiti su una tabella più piccola non danno problemi ...
Probabilmente con la tabella grandina bisogna ottimizzare la query che
impiega molto tempo.

Ciao
--
Giorgio Rancati
[Office Access MVP]
Francescodiassisi
2009-10-22 13:58:01 UTC
Permalink
Passando le righe di codice con l'F8 non succede nulla: arrivato all'apertura
del report va sull'evento Apertura del report dove c'è il comando
Docmd.Maximize, si intravede il Report un attimo, poi ritorna alla maschera
che ha lanciato il pgm, fa il suo bel Exit Sub e si blocca. Se vado a
eliminare manualmente la tabella AZ mi esce il msg: il modulo di gestine di
database non può bloccare la tabella "AZ" perchè in uso da un altro utente o
processo.
Io vedo di ridurre i campi della tabella, ma se a qualcuno viene un'idea,
siamo qui.
Grazie e buon pomeriggio! : )
Post by giorgio rancati
Post by Francescodiassisi
Ciao Giorgio, come dicevo il pgm non mi dà errori. La tabella prodotta dalla
query produce una tabella grandina, 2000 record con una sessantina di campi.
Quando clicco il pulsante con il programmino sotto, la maschera rimane
bloccata. Non vanno più neanche gli altri pulsanti ( quello di uscita per
esempio ). Per stampare il report devo andare nella finestra del database e
aprirlo manualmente.
questo significa che il flusso del programma non arriva all'istruzione
Docmd.Openreport.
Metti un punto di interruzione nella prima riga con DoCmd.OpenQuery e poi
esegui passo per passo (Pulsante F8) le istruzioni e guarda dove si blocca.
Post by Francescodiassisi
Gli stessi comandi eseguiti su una tabella più piccola non danno problemi ...
Probabilmente con la tabella grandina bisogna ottimizzare la query che
impiega molto tempo.
Ciao
--
Giorgio Rancati
[Office Access MVP]
.
giorgio rancati
2009-10-22 15:12:14 UTC
Permalink
Post by Francescodiassisi
Passando le righe di codice con l'F8 non succede nulla: arrivato all'apertura
del report va sull'evento Apertura del report dove c'è il comando
Docmd.Maximize, si intravede il Report un attimo, poi ritorna alla maschera
che ha lanciato il pgm, fa il suo bel Exit Sub e si blocca. Se vado a
eliminare manualmente la tabella AZ mi esce il msg: il modulo di gestine di
database non può bloccare la tabella "AZ" perchè in uso da un altro utente o
processo.
e se lo apri manualmente funziona ? interessante!
L'unica cosa che mi viene in mente di suggerire è un bel compatta e
ripristina database, forse il db è in uno stato di corruzione.

Ciao
--
Giorgio Rancati
[Office Access MVP]

Paolo
2009-10-22 12:18:01 UTC
Permalink
Ringrazio Giorgio Rancati per la precisazione, pensavo Francescodiassisi
usasse A2k e quindi non ho pernsato che nelle versioni successive gli
argomenti sono diventati 6.
La costante intrinseca che usi per il quinto argomento è, a mio avviso
sbagliata o meglio indefinita, e quindi il tuo programma si blocca o meglio
si perde a cercarla.
L'istruzione dovrebbe essere:
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acWindowNormal

Comunque visto che acWindowNormal è il default e al terzo e quarto argomento
non passi niente (filtro e where) dovrebbe funzionare anche
DoCmd.OpenReport "Stampa_AZ", acViewPreview

HTH Paolo
Post by Francescodiassisi
Ciao Giorgio, come dicevo il pgm non mi dà errori. La tabella prodotta dalla
query produce una tabella grandina, 2000 record con una sessantina di campi.
Quando clicco il pulsante con il programmino sotto, la maschera rimane
bloccata. Non vanno più neanche gli altri pulsanti ( quello di uscita per
esempio ). Per stampare il report devo andare nella finestra del database e
aprirlo manualmente.
Gli stessi comandi eseguiti su una tabella più piccola non danno problemi ...
Post by giorgio rancati
Post by Francescodiassisi
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal
Forse il passaggio dall'Update all'OpenReport è troppo veloce?
no, forse è meglio che descrivi come si blocca il programma, quali mesaggi
di errore ricevi ecc.
Ciao
--
Giorgio Rancati
[Office Access MVP]
.
giorgio rancati
2009-10-22 12:37:16 UTC
Permalink
Post by Paolo
Ringrazio Giorgio Rancati per la precisazione, pensavo Francescodiassisi
usasse A2k e quindi non ho pernsato che nelle versioni successive gli
argomenti sono diventati 6.
La costante intrinseca che usi per il quinto argomento è, a mio avviso
sbagliata o meglio indefinita, e quindi il tuo programma si blocca o meglio
si perde a cercarla.
Ciao Paolo,
diciamo che è formalmente sbagliato ma nella sostanza non cambia nulla
perchè acNormal e acWindowNormal sono costanti con lo stesso valore ovvero 0
----
Const acNormal = 0
Membro di Access.AcFormView

Const acWindowNormal = 0
Membro di Access.AcWindowMode
----
quindi non fa differenza.
Post by Paolo
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acWindowNormal
Comunque visto che acWindowNormal è il default e al terzo e quarto argomento
non passi niente (filtro e where) dovrebbe funzionare anche
DoCmd.OpenReport "Stampa_AZ", acViewPreview
queste sono formalmente corrette ma non c'è differenza con quella postata da
francescodiassisi quindi credo che il problema su cui indagare sia altrove.
:-)
--
Giorgio Rancati
[Office Access MVP]
Paolo
2009-10-22 13:39:02 UTC
Permalink
Si, in effetti quella che facevo io è solo una questione formale ma da cui
non può dipendere il fatto che si blocchi.
Bisognerebbe vedere l'SQL della query perchè 2000 records a me non sembrano
tanti. Eseguita da sola la tua query di creazione tabella quanto tempo ci
mette?
Post by giorgio rancati
Post by Paolo
Ringrazio Giorgio Rancati per la precisazione, pensavo Francescodiassisi
usasse A2k e quindi non ho pernsato che nelle versioni successive gli
argomenti sono diventati 6.
La costante intrinseca che usi per il quinto argomento è, a mio avviso
sbagliata o meglio indefinita, e quindi il tuo programma si blocca o meglio
si perde a cercarla.
Ciao Paolo,
diciamo che è formalmente sbagliato ma nella sostanza non cambia nulla
perchè acNormal e acWindowNormal sono costanti con lo stesso valore ovvero 0
----
Const acNormal = 0
Membro di Access.AcFormView
Const acWindowNormal = 0
Membro di Access.AcWindowMode
----
quindi non fa differenza.
Post by Paolo
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acWindowNormal
Comunque visto che acWindowNormal è il default e al terzo e quarto argomento
non passi niente (filtro e where) dovrebbe funzionare anche
DoCmd.OpenReport "Stampa_AZ", acViewPreview
queste sono formalmente corrette ma non c'è differenza con quella postata da
francescodiassisi quindi credo che il problema su cui indagare sia altrove.
:-)
--
Giorgio Rancati
[Office Access MVP]
.
Paolo
2009-10-22 10:07:01 UTC
Permalink
Ciao Francescodiassisi,

direi che non funziona perchè, che io sappia, openreport ha al massimo
quattro argomenti e non cinque come hai messo tu.
Così dovrebbe funzionare:
DoCmd.OpenReport "Stampa_AZ", acViewPreview

HTH Paolo
Post by Francescodiassisi
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal
Forse il passaggio dall'Update all'OpenReport è troppo veloce? Grazie! : )
giorgio rancati
2009-10-22 10:27:44 UTC
Permalink
Post by Paolo
Ciao Francescodiassisi,
direi che non funziona perchè, che io sappia, openreport ha al massimo
quattro argomenti e non cinque come hai messo tu.
Ciao Paolo,

dipende dalla versione di Access.
In Access 2000 ci sono 4 argomenti, da Access 2002 in avanti ci sono 6
argomenti
----
http://office.microsoft.com/client/helppreview.aspx?AssetID=HV100376981033&QueryID=9_KG74Ugi&respos=1&rt=2&ns=MSACCESS.DEV&lcid=2057&pid=CH101072601033
----

Ciao
--
Giorgio Rancati
[Office Access MVP]
Francescodiassisi
2009-10-22 10:28:01 UTC
Permalink
Ciao Paolo, ho fatto come mi hai detto, ma non funziona.. e comunque gli
argomenti ci stanno: se converti in modulo una macro dove dici "apri il
report tal dei tali in modalità anteprima di stampa" ti dà esattamente quel
codice.
Il programma non dà nessun errore, solo che non mi apre il report. Se lo
vado ad aprire io manualmente lo apre, se glielo dico da codice no.
Post by Paolo
Ciao Francescodiassisi,
direi che non funziona perchè, che io sappia, openreport ha al massimo
quattro argomenti e non cinque come hai messo tu.
DoCmd.OpenReport "Stampa_AZ", acViewPreview
HTH Paolo
Post by Francescodiassisi
Ciao amici, ecco una domanda facilissima.
ho tre righe di codice: la prima crea una tabella, la seconda la modifica,
DoCmd.OpenQuery "Crea AZ", acViewNormal, acEdit
CurrentDb.Execute "UPDATE AZ SET AZ.CLIENTE = 0 WHERE AZ.CLIENTE = 1"
DoCmd.OpenReport "Stampa_AZ", acViewPreview, "", "", acNormal
Forse il passaggio dall'Update all'OpenReport è troppo veloce? Grazie! : )
Loading...