Errore 13 nell'apertura di un file

di Anonimizzato23613 il
27 risposte
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

27 Risposte

  • Cosa è frm_accessodati ?
  • 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.
  • Ma non ha senso scrivere

    frm_accessodati & "\Dati.mdb"

    ... stai unendo un oggetto form ad una stringa! E la listbox che c'entra? Ovvio che ti dà errore 13!

    Non hai molta dimestichezza con il codice VB6 (anche se banale) ... dovresti leggere qualche tutorial ...

    Che vuoi fare con

    frm_accessodati & "\Dati.mdb"

    ??
  • Mi permetto di aggiungere un consiglio non richiesto ovvero che forse ti converrebbe passare a vb .net , troveresti molti più libri o tutorial da studiare e gli strumenti di sviluppo (visual studio community) sono gratuiti,ciao
  • Sì, ho pensato anche io a VB.NET ma visto il livello di conoscenza del VB6, forse è meglio studiare le basi.
  • 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
    Forse l'errore è dopo, perché la routine salta regolarmente all'errore e la msgbox appare.
    Ma c'è solo End dopo l'msgbox, che dovrebbe chiudere il programma senza problemi.
    End chiude in modo drastico il programma, l'hai messo di proposito? Oppure ti è rimasto li per errore?
  • Passare a vb.net in questo momento non ha molto senso poichè con .net 5 non ci dovrebbero essere più progetti in vb .net in visual studio ma solo in C# e F# ,inoltre se è vero che in vb .net trovi molte più risorse che in vb6 è altrettanto vero che in c# trovi molti più libri ,articoli ,post rispetto a vb .net ,ti linko un paio di libri gratuiti per iniziare con c# :

    https://antoniopelleriti.it/wp-content/uploads/2019/11/ABCsharp-guida-alla-programmazione-in-csharp-8.pdf

    https://introprogramming.info/english-intro-csharp-book/
  • Gli interventi più antipatici in un forum, sono quelli che non rispondono alla domada posta.
    Prima la risposta, poi i consigli, non credo che andreas91 non sappia che VB6 non è più supportato, ma comunque ha posto una domanda precisa nel forum dove si discute di VB6
  • Rubik ha scritto:


    andreas91 ha scritto:


    Forse l'errore è ...
    L'errore è (addirittura) in fase di compilazione perché lui tenta di unire una stringa ad un form.

    Tutto qui.

    Se andreas91 ha il tempo di rispondere e di farci sapere, si risolve in due minuti.
  • Mi correggo.... nel codice che aveva postato c'era un errore, non era frm_accessodati ma lbl_accessodati, ovvero non un form ma una label che contiene il percorso dove si trova il file mdb...
    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
  • Beh, questo cambia tutto il discorso che ti avevo fatto ma se dopo giorni e giorni scopriamo che non posti il codice corretto ...

    Se hai ancora l'errore, come ti avevo suggerito prima, togli la On Error e controlla esattamente quando e in quale riga te lo dà.
    Riporta esattamente cosa fai e i messaggi che hai (magari non tra 3 giorni ...)
  • Ma lbl_accessodati è un controllo? ,non dovresti recuperare la proprietà Text del controllo ed usare questa nella composizione della stringa per OpenDatabase?
    lbl_accessodati.Text
Devi accedere o registrarti per scrivere nel forum
27 risposte