Newsgroup: it.comp.appl.access
Titolo: Aggiornare form per visualizzare report

Ciao a tutti.A volte ho necessita' di resettare la maschera "Form1"
per poter visualizzare un report.Tale report viene lanciato da un
controllo nella maschera "Form1" e di tanto in tanto mi esce la
finestra di errore.A questo punto se esco dalla maschera e poi rientro
e clicco sul controllo tutto funziona correttamente.Il problema e' che
la maschera "form 1" viene aperta da un controllo in una un'altra
maschera "form2".Il quale apre la "Form1" ad un record ben preciso:
stDocName = "Form1"
    stLinkCriteria = "[IDscheda]=" & Me.IDscheda
    DoCmd.Close
    DoCmd.OpenForm stDocName, , , stLinkCriteria
La mia richiesta e' quindi quella di poter chiudere la "Form1" e
riaprirla contemporaneamente al record in cui si trovava.
Grazie in anticipo
Dino

 ha scritto nel messaggio 
news:cd706ce6-6acc-494c...@p15g2000vbl.googlegroups.com...

con un tasto come hai fatto sopra.... introducendo prima di
 DoCmd.OpenForm stDocName, , , stLinkCriteria
docmd.close acform,
me.name
ciao
max 

 - Mostra testo citato -
Nella form2 ho il pulsante di comando che mi apre la form1 ad un
determinato record (ID scheda)
io voglio creare anche una roitine che mi permetta di uscire e
rientrare sempre allo stesso record.
forse il codice ti ha depistato perche' non ho inserito le
dichiarazioni
Dim stDocName As String
    Dim stLinkCriteria As String
Dino

 ha scritto nel messaggio 
news:cd706ce6-6acc-494c...@p15g2000vbl.googlegroups.com...

Se ho ben capito da form2 apri form1 e poi vuoi chiudere form2.
Ci sono diverse strade. Io ti propongo questa visto che il report ha 
necessit� di form1 aperta.
Apri la form1 da form2 cos�:
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Form1"
stLinkCriteria = "[IDscheda]=" & Me.IDscheda
DoCmd.OpenForm stDocName, , , stLinkCriteria
In form1 "su timer" scrivi
Me.TimerInterval = 0
DoCmd.Close acForm, "Form2"
Sempre su form1 imposta la propriet� "Intervallo Timer" su 500
Ora fai quello che vuoi da form1.
Ciao, Carlo 

 - Mostra testo citato -
Ciao Carlo .Grazie per la risposta.
Ho provato ma dopo alcune volte mi si ripresenta la problematica.
Cerco di essere piu' chiaro per farti capire meglio (speriamo di non
essere ripetitivo).
Nella  form1 ho il controllo "Visualizza dati fattura" il quale apre
il report "fatture".Nel pie' di pagina di questo report Ho un
istruzione If abbastanza complessa.A seconda delle diverse condizioni
che si verificano nel report viene inserito un file JPG (come carta
intestata) tramite il seguente codice:
Me.Report.Picture = "C:\Gestionale\Img_gestionale\Fattura_I°_pag.jpg".
Ovviamente come ti dicevo a seconda delle condizioni ho diversi JPG da
inserire (.istruzione If con sette condizioni)
A volte quando clicco mi esce la finestra di errore.Quindi Chiudo la
mia Form "form1".Vado in "form2".Riclicco sul controllo che mi apre
"form1" al record specifico e clicco sul controllo "Visualizza dati
fattura" e tutto funziona regolarmente.Ecco questa procedura vorrei
gia' poterla inserire (con del codice) all'interno di tale controllo
per prevenire tale problematica.
Grazie ancora per la risposta.
Dino

 ha scritto nel messaggio 
news:695df5ee-c2d5-4b62...@o13g2000vbl.googlegroups.com...


Dino
sinceramente non mi � chiaro cosa vuoi fare per risolvere il problema, io ho 
inteso che tu volessi chiudere la form1 dalla stessa form1 e riaprila sulla 
stessa scheda, se ci� � vero non devi fare altro che ricopiare su un 
pulsante della form1 il codice che inserisci sulla form2 inserendo prima 
dell'apertura della form1 di nuovo un comando che la chiuda.
quindi
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Form1"
stLinkCriteria = "[IDscheda]=" & Me.IDscheda
DoCmd.Close acform, 
me.name
DoCmd.OpenForm stDocName, , , stLinkCriteria
ciao
Max 

 Dino
Ma qual'� l'errore? 
Penso che il problema sia invece nel report. Hai provato a chiudere e
riaprire il report? Pu� darsi che questa tua istruzione "If" non sia
corretta e non faccia caricare l'immagine.
Il pulsante sulla maschera alla fine non fa altro che aprire un report.
--
sv  
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 0) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale3] > 0) Then
Me.Report.Picture = "C:\Gestionale\Img_gestionale\Fattura_1_III
°_pag.jpg"
End If
Tale istruzione ho dovuto inserirla nella sezione Pie' di pagina del
report,perche' in altre sezioni o sull'evento apertura non funziona.
Grazie ancora Dino

 ha scritto
cut
....
Tale istruzione ho dovuto inserirla nella sezione Pie' di pagina del
report,perche' in altre sezioni o sull'evento apertura non funziona.
Grazie ancora Dino
La prima cosa da fare � seguire il codice sul report "passo passo" 
utilizzando il punto d'interruzione all'inizio del codice.
Dovrai ferificare ogni singola condizione e in particolare se restituisce 
qualcosa (per esempio il classico zero che a volte richiede il 
NZ("TuoValoreNull",0) perch� restituisce nullo anzich� zero).
Togliere eventuali "on error resume next" presenti nel codice, almeno nella 
fase di debug; verificare se l'errore si presenta sempre in una stessa 
condizione o � ininfluente.
Se hai modo di verificare prima il risultato dei vari if e siccome usi solo 
tre immagini io cercherei di assegnare prima di aprire il report il 
possibile valore ad una variabile numerica globale. Per esempio:
Dim MioValore as integer
'qui riporto un tuo if
If ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand] =
True) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImp
vari] = False) And ([Sreportribaraggrupimportispeciali].Report!
[PrimoDiImporto speciale] = 0) And
([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
= 0) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale3] = 0) Then
MioValore = 1
'....
ecc.
MioValore = 2 e via dicendo
A questo punto aprendo il report:
If MioValore = 1 or MioValore = 2 or MioValore = n then
Me.Report.Picture = "C:\Gestionale\Img_gestionale\Fattura_1_I
�_pag.jpg"
End if
Puoi usare anche Select case.
Ciao, Carlo 

 Ciao, Carlo
ciao Carlo e grazie per la risposta.
Mi son dimenticato di sottolineare che l'errore e' sempre e solo sulla
prima condizione dell'istruzione If e cioe'
If ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand] =
True) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImp
vari] = False) And ([Sreportribaraggrupimportispeciali].Report!
[PrimoDiImporto speciale] = 0) And
([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale2]
= 0) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale3] = 0) Then
Me.Report.Picture = "C:\Gestionale\Img_gestionale\Fattura_1_I
°_pag.jpg" .
il fatto strano e' che e' capitato a volte sia quando le condizioni si
verificavano e sia quando non si verificavano.
Ancora piu' strano e' il reset cioe' se io esco dalla maschera e
rientro e lancio il report immancabilmente il report
si apre con l'immagine corretta.
Perdonami ma non ho ben capito il discorso della variabile numerica
Grazie ancora Dino

 condizione o � ininfluente.





Segui questo tutorial:
http://www.blueclaw-db.com/overlay_underlay_images_dynamically.htm
In pratica ti dice di usare un controllo immagine (con il percorso 
dell'immagine che ti crea problemi), inserirlo nel report e posizionarlo 
come pi� ti piace ovviamente a di sotto dei controlli. Poi dalle propriet� 
del controllo immagine togli qualsiasi nome in modo che resti (none). A 
questo punto carichi l'immagine a runtime:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Me.Form_Image.Picture = "c:\access 2000\santen.jpg"
End Sub
Sembra che il problema riguardi le dimensioni dell'immagine.
Puoi anche provare la strada di mettere un NZ (null in zero) nelle 
condizioni che usi:
If ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand] =
True) And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImp
vari] = False) And (NZ([Sreportribaraggrupimportispeciali].Report!
[PrimoDiImporto speciale],0) = 0) And
(NZ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale2],0)
= 0) And (NZ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto
speciale3],0) = 0) Then
Me.Report.Picture = "C:\Gestionale\Img_gestionale\Fattura_1_I
�_pag.jpg" .
Hai seguito il codice passo passo?
Ciao, Carlo 

 - Mostra testo citato -
Grazie faccio alcune prove e poi ti faccio sapere.
Eventualmente la strada del reset non potrebbe essere risolutiva???
Dino

 - Mostra testo citato -
Ciao Carlo.Come dicevo il precedente post il problema riguarda la
prima riga dell'istruzione If.
Ho provato la strada della funzione Nz ma il risultato non cambia
(tralaltro i campi dove ho inserito Nz come default sono a zero).
Per quanto riguarda l'altra possibilita' io non posso caricare nel
report un'immagine anche se dinamicamente,perche' ne devo gestire tre
contemporaneamente.
Secondo me la strada "migliore" risulta essere quella del reset.Anche
in questo caso molto strano.Se chiudo la Form1 con il normale controllo
(gestito da una macro che compie due azioni:Chiude la form1 e apre la
form2) e poi
clicco sul controllo della form2 per aprire la form1al record
specifico tutto rifunziona.Se creo la stessa situazione in un solo
controllo nella form2 no.Come puo' essere????
Aspetto tue notizie
Dino

Dino
Ancora non hai risposto se hai fatto il debug utilizzando il punto 
d'interruzione e l'esecuzione "passo passo".
E' molto importante perch� si scoprono molti errori o almeno il punto in cui 
si genera l'errore.
Prima di questo passo togli ogni gestore degli errori e in particolare 
qualche "On error resume next".
Non ti fissare sul "reset" che non � una soluzione professionale.
Ciao, Carlo 

 Grazie ancora Dino
Ci sono tre condizioni che possono essere racchiuse in una sola.
Riscrivili cos�:
If 
    ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand]= Not 
[Sreportribaraggrupimportispeciali].Report![PrimoDiImpvari]) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale] 
  >= 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
  =  0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImportospeciale3] 
  = 0) Then
Me.Report.Picture = "C:GestionaleImg_gestionaleFattura_1_I�_pag.jpg"
ElseIf 
    ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand]= True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImpvari] = True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale] 
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
  = 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImportospeciale3] 
  = 0) Then
Me.Report.Picture = "C:GestionaleImg_gestionaleFattura_1_II�_pag.jpg"
ElseIf 
    ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand]= True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImpvari] = True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale] 
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImportospeciale3] 
  = 0) Then
Me.Report.Picture = "C:GestionaleImg_gestionaleFattura_1_III�_pag.jpg"
ElseIf 
    ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand]= True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImpvari] = False) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale] 
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImportospeciale3] 
  = 0) Then
Me.Report.Picture = "C:GestionaleImg_gestionaleFattura_1_II�_pag.jpg"
ElseIf
    ([Sreportribaraggrupimportispeciali].Report![PrimoDiPag stand]= True) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImpvari] = False) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale] 
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImporto speciale2]
  > 0) 
And ([Sreportribaraggrupimportispeciali].Report![PrimoDiImportospeciale3] 
  > 0) Then
Me.Report.Picture = "C:GestionaleImg_gestionaleFattura_1_III�_pag.jpg"
End If
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo citato -
Eccomi qua'.Ho seguito il codice passo per passo ed ho tolto tante
cose inutili.
Per quanto riguarda la Funzione Nz non e' cambiato nulla.Poi comunque
i campi nell'istruzione If con valore numerico ono di default a
o,quindi problema di null non esiste.
Visto che giustamente il "reset" anche se utile non e' professionale
mi rimane l'inserimento dinamico dell'immagine.
Problema, ma le righe di codice per il caricamento in che sezione del
report devo inserirle??.Nel link che mi hai postato parlano
dell'evento dettaglio.Dove sta'
Grazie ancora e scusa per la domanda magari banale.
Dino

 ha scritto
cut
....
Problema, ma le righe di codice per il caricamento in che sezione del
report devo inserirle??.Nel link che mi hai postato parlano
dell'evento dettaglio.Dove sta'
Grazie ancora e scusa per la domanda magari banale.
Dino
E si che lo avevo riportato:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Me.Form_Image.Picture = "c:\access 2000\santen.jpg"
End Sub
Ciao, Carlo 

 ha scritto

Forse non mi sono spiegato.L'avevi scritto,ma la mia domanda e' :lo
scrivo nella sezione pie' di pagina dove ho impostato L'if o nella
sezione corpo???Comunque non trovo l'evento formato.
Altra domanda  il percorso che hai scritto ovviamente lo introduco nel
istruzione If???
Grazie e scusa se sono un po' "De coccio"
Dino


OK tutto risolto.Il problema non era dovuto assolutamente
all'istruzione If.La Query che gestisce il report ha come criterio un
rif ad una maschera che viene.Questa maschera deve essere aperta e
puntare al primo record.Mi sono solo dimenticato di creare da codice
la macro che facesse questo.
Grazie comunque per la vostra disponibilita'

 ha scritto
OK tutto risolto.Il problema non era dovuto assolutamente
all'istruzione If.La Query che gestisce il report ha come criterio un
rif ad una maschera che viene.Questa maschera deve essere aperta e
puntare al primo record.Mi sono solo dimenticato di creare da codice
la macro che facesse questo.
Grazie comunque per la vostra disponibilita'
---------------------------
Dalle mie parti si dice: "ti dovrebbero fare all'aceto!"
E si che ti era stato detto di fare il debug passo passo.
Meglio cos�.
Ciao, Carlo

 Ciao, Carlo
Hai ragione.Tu mi insegni che a volte il problema i lì vhe ci guarda
ma!!!!.
Ad ogni modo io ho ascoltato il tuo consiglio e ho fatto il debug.Ho
pulito tanta "robaccia",ma il problema che ti ho detto non puo'
rilevarlo il debug.Mi sono accorto
andando a scomporre tutta quella parte di DB.Facendo delle prove e non
inserendo per caso un campo mi dava il problema.E quindi sono risalito
facilmente a tutto.
Comunque grazie(ho sempre acquisito dei consigli preziosi) e poi una
rosolata "all'aceto non mi fa' male"
Dino

 Grazie comunque per la vostra disponibilita'
Pertanto il problema era nel report...
Ti doveva per� chiedere questo riferimento come parametro mancante
all'apertura..
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo citato -
Infatti lo chiedeva.Io pero' nel resettare andavo (no mi ricordavo) a
lanciare la macro in questione e tutto funzionava.Quindi l'istruzione
era corretta.
sto' invecchiando.
Grazie conumque per i consigli
Dino