Andreas91 ha scritto:
andreas91 ha scritto:
Buongiorno a tutti,
nel programmino che ho fatto, nell'apertura di un file database mdb se non trova il file mi da errore 13, eppure ho scritto il codice sempre così....
Vorrei trovare un modo per far saltare l'errore.
Public Function ApriDB_Libri()
On Error GoTo RigaErrore
Set DB = OpenDatabase(frm_accessodati & "\Dati.mdb", False, False, "; pwd=mario1973")
Set rs = DB.OpenRecordset("SELECT * FROM Libri ORDER BY autore")
Exit Function
RigaErrore:
errormsg = MsgBox("Impossibile aprire Dati.mdb!", vbCritical, "Errore")
End
End Function
Poi ancora:
Frm_accessodati è il form con all'interno una listbox che visualizza dei dati.
Il problema è che se trova il file mdb regolarmente lo apre e non ci sono problemi, ma se non trova il file mi dopo avermi visualizzato la MsgBox("Impossibile aprire Dati.mdb!", vbCritical, "Errore"), mi da errore 13.
E' evidente che Andreas91 ha trascritto un codice errato, come evidenziato da Oregono il codice così scritto non verrebbe nenche compilato.
Andreas91 ha anche postato un nuovo codice:
Public Function ApriDB_Libri()
On Error GoTo RigaErrore
Set DB = OpenDatabase(lbl_accessodati & "\Dati.mdb", False, False, "; pwd=mario1973")
Set rs = DB.OpenRecordset("SELECT * FROM Libri ORDER BY autore")
Exit Function
RigaErrore:
errormsg = MsgBox("Impossibile aprire Dati.mdb!", vbCritical, "Errore")
End
End Function
questa volta l'errore non c'è perché in VB6 non è obbligatorio mettere .Caption per ottenete la proprietà Caption di una label.
Mi sono impuntato su questa affermazione di Andreas91:
Il problema è che se trova il file mdb regolarmente lo apre e non ci sono problemi, ma se non trova il file mi dopo avermi visualizzato la MsgBox("Impossibile aprire Dati.mdb!", vbCritical, "Errore"), mi da errore 13.
Questo significa che Andreas91 ha un codice funzionate che si compila e va in esecuzione, se il database c'é, tutto funziona.
Se il datadase non c'è ha un errore, il codice salta a RigaErrore: e visualizza l'MsgBox, e
DOPO ha l'errore 13.
Ribadisco che l'errore risiede nell'istruzione END, che drasticamente chiude il programma senza liberare le risorse che possono generare l'errore 13.
Per Andreas91 ti ho chiesto nel post del 30 set 2020, 17:51:
End chiude in modo drastico il programma, l'hai messo di proposito? Oppure ti è rimasto li per errore?
prova a mettere prima di End
db.Close