Newsgroup: it.comp.appl.access
Titolo: msgbox su query nulla

Salve a tutti; vorrei creare un msgbox sull'eventuale risultato nullo datomi
dall'esecuzione di una query che mi popola all'apertura, una maschera. Ho
letto un post di novembre scorso di Gianni_b che dava la soluzione seguente:
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "Nessun record da visualizzare", vbCritical, "Assenza di record da
visualizzare.."
Cancel = True
DoCmd.Close acForm, "TuaMaschera", acSaveNo
End If
If Me.RecordsetClone.RecordCount > 0 Then
DoCmd.Close acForm, "MAschera che contiene il pulsante di comando per aprire
Tua maschera"
End If
nel mio caso però non funziona, o per meglio dire funziona in parte nel
senso che mi da il msg se non c'e' nulla pero' poi va avanti e mi da errore
perchè apre cmq la maschera di destinazione.
Come si puo' risolvere?
grazie
F
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:80Z182Z85Z211Y1...@usenet.libero.it...

A mio avviso l'errore ti viene dato al momento che esegue la riga di codice
VBA:
DoCmd.Close acForm, "TuaMaschera", acSaveNo
in quanto con questo metodo chiudi la maschera TuaMaschera che non hai
aperto visto che hai usato Cancel = True; prova ad elimonare tale riga che
contiene il DoCmdClose.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ---------------------------------------------
Ciao.
P.S. Ah!Ah!Ah!Ah!Ah!Ah! Hi!Hi! Elimonare.. Hiiii hihihhi..
--
Sergio MAZZA


Mi da il msg che voglio, ma poi da "Azione Open form annullata"
ciao






Come ti ho già detto ciò è dovuto al fatto che chiusi una maschera che non
hai aperto: non lo fare.
Prova a ripostare tutto il codice VBA dopo le ultime correzioni,
specificando come si chiamano le varie maschere in gioco.



Infatti l'istruzione
DoCmd.Close acForm, "TuaMaschera", acSaveNo
l'ho eliminata e mi da l'errore sopra descritto. Cmq il codice che hai visto
all'inizio del thread l'ho sistemato nell'evento del tasto di apertura della
form dei risultati. Le due maschere si chiamano docricerca e docrisult
grazie


 ---------------------------------------------
Ciao.
--
Sergio MAZZA


Ops mi correggo; il codice l'ho inserito nell'evento form open della
maschera dei risultati, cioè docrisult


 F
Scusa, ma non capisco al tua reticenza a postare qualche riga di codice VBA
che stai usando, comunque...
Se la maschera chiamante si chiama docricerca.
Se la maschera da aprire si chiama docrisult.
Se a fronte dell'evento "Su apertura" della maschera docrisult generi
SOLAMENTE il seguente codice VBA:
If Me.RecordsetClone.RecordCount = 0 Then
    MsgBox "Nessun record da visualizzare", vbCritical, "Assenza di record"
    Cancel = True
End If
DoCmd.Close acForm, "docricerca"
Cosa succede?



Per carità nessuna reticenza, figurati...anzi stavo per postare il pezzo di
codice con la soluzione trovata in base alle tue indicazioni......eccola
sull'evento open form della maschera dei risultati, ho fatto cosi':
Private Sub Form_Open(cancel As Integer)
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "Nessun record da visualizzare", vbCritical, "Attenzione!!!!!!!!!"
DoCmd.Close acForm, "docrisult", acSaveNo
Else
DoCmd.Maximize
CommandBars("Menu Bar").Enabled = False
    CommandBars("Formatting (Form/Report)").Enabled = False
    CommandBars("Form View").Enabled = False
    CommandBars("Database").Enabled = False
    CommandBars("Form Design").Enabled = False
    CommandBars("Toolbox").Enabled = False
If Me![path] = Null Then
Me.Immagine.Picture = Nz(Me.path, vbNullString)
ElseIf Me![path] <> Null Then
Me![Immagine].Picture = Me![path]
End If
If Me![pathg] = Null Then
Me.Immagineg.Picture = Nz(Me.pathg, vbNullString)
ElseIf Me![pathg] <> Null Then
Me![Immagineg].Picture = Me![pathg]
End If
End If
End Sub
l'else l'ho dovuto mettere altrimenti va avanti e genera l'errore che ti ho
descritto.
ciao e scusa ma non volevo nascondere nulla.....anzi
