Compattazione db (file Access) da Vb.Net

di il
9 risposte

Compattazione db (file Access) da Vb.Net

Salve a tutto il forum, avrei il seguente problema.

Per fare la compattazione da Vb.Net di un file *.mdb ho usato sempre un determinato codice e dll, cosa che con le quali mi è andato sempre a buon fine.

Sta volta sto avendo qualche errore ed è da premettere che non programmo da un pò di tempo, quindi magari mi sfugge qualcosa.

        Dim jro As JRO.JetEngine
       JRO = New JRO.JetEngine
       JRO.CompactDatabase("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1.mdb;Jet OLEDB:Engine Type=5",
                              "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1 compact.mdb;Jet OLEDB:Engine Type=5")
       My.Computer.FileSystem.DeleteFile("Bonifici Sindaco Fabio\Database1.mdb")
       My.Computer.FileSystem.RenameFile("Bonifici Sindaco Fabio\Database1 compact.mdb", "Database1.mdb")

Dll sotto cartella Debug

Interop.ADODB.dll

Interop.DAO.dll

Interop.JRO.dll

Riferimenti:

Microsoft Activex Data Objects6.1 Library

Microsoft Jet And ReplicationObjects 2.6 Library

Errore restituito:

Il tool Access Runtime lo tengo installato

Se metto il Try….. catch

 Dim jro As JRO.JetEngine

Try
    jro = New JRO.JetEngine
    jro.CompactDatabase("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1.mdb;Jet OLEDB:Engine Type=5",
                       "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1 compact.mdb;Jet OLEDB:Engine Type=5")
    'My.Computer.FileSystem.DeleteFile("Bonifici Sindaco Fabio\Database1.mdb")
    'My.Computer.FileSystem.RenameFile("Bonifici Sindaco Fabio\Database1 compact.mdb", "Database1.mdb")

Catch ex As Exception

End Try

Scapolo l' errore ma non ho alcun risultato, non mi crea neanche il file Database1 compact.mdb

Da premettere che ha da un pò che non programmo e penso che mi sfugge qualcosa.

Del resto l' applicazione funziona correttamente con tutte le sue funzioni.

Dove sbaglio?

Distinti Saluti

Fabio Messina

9 Risposte

  • Re: Compattazione db (file Access) da Vb.Net

    Non sei nuovo, perchè non posti il codice nel forum formattandolo?

    Comunque togli la try catch temporaneamente per evidenziare l'errore e poi se ne parla

  • Re: Compattazione db (file Access) da Vb.Net

    L' errore me lo da qui:

    '---------------------------------
    jro = New JRO.JetEngine
    
    '----------------------------------
     Dim jro As JRO.JetEngine
    
    
     jro = New JRO.JetEngine
         jro.CompactDatabase("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1.mdb;Jet OLEDB:Engine Type=5",
                            "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Bonifici Sindaco Fabio\Database1 compact.mdb;Jet OLEDB:Engine Type=5")
     My.Computer.FileSystem.DeleteFile("Bonifici Sindaco Fabio\Database1.mdb")
     My.Computer.FileSystem.RenameFile("Bonifici Sindaco Fabio\Database1 compact.mdb", "Database1.mdb")
    
    '-----------------------------------

    Il dubbio che ho e quello che forse dimentico qualche riferimento.

  • Re: Compattazione db (file Access) da Vb.Net

    16/09/2024 - jekisi ha scritto:


    L' errore me lo da qui:

    '---------------------------------

    Stranissimo che l'errore te lo dia in quella riga lì

  • Re: Compattazione db (file Access) da Vb.Net

    L' errore me lo da qui:

    jro = New JRO.JetEngine
  • Re: Compattazione db (file Access) da Vb.Net

    Ok, allora l'errore è su quella riga

    ……….. e ora ?????

    Secondo te noi abbiamo la sfera di cristallo e sappiamo che errore ti appare ??
    Se non ci dai indicazioni, secondo te noi sappiamo quale è il problema ??

    Comunque nel listato io leggo

    jro = New JRO.JetEngine
    Dim jro As JRO.JetEngine
    jro = New JRO.JetEngine

    La prima e la terza riga sono uguali, cosa servono ???
    La seconda riga definisce jro, ma viene già utilizzata nella prima riga, secondo te è possibile usare una variabile prima ancora di definirla ???

    Prova a cancellare la prima riga e vedi cosa succede

  • Re: Compattazione db (file Access) da Vb.Net

    Manca la libreria JRO (fra l'altro obsoleta) ovvero la msjro.dll

  • Re: Compattazione db (file Access) da Vb.Net

  • Re: Compattazione db (file Access) da Vb.Net

    Pensavo di aver allegato l' immagine prima, invece no, ecco l' errore, INTERFACCIA NON REGISTRATA.

    Le DLL stanno nella cartella Debug dell' applicazione (libreria)

    Interop.ADODB.dll

    Interop.DAO.dll

    Interop.JRO.dll

    E come, tantomeno, ho sempre fatto.

    Penso solo che non seleziono (spunto) qualche riferimento.

  • Re: Compattazione db (file Access) da Vb.Net

    Oregon ti ha già dato la soluzione

Devi accedere o registrarti per scrivere nel forum
9 risposte