none
Access 2007(accdb) Datenbank mit VB 6 komprimieren RRS feed

  • Frage

  • Hallo,
    ich suche VBcode mit dem ich, eine Access2007(accdb) Datenbank(mit.Passwort) mit VB6 komprimieren kann.

    Ich habe zwar nen Code, der mir die Datenbank komprimiert, sie wird aber im alten Access Format abgelegt.
    Hab jemand ne Idee ?
    Ich finde immer nur Möglichkeiten wie man es mit .NET lösen kann.

    Danke  :-)
    Montag, 12. Oktober 2009 11:42

Antworten

  • Hallo Philipp,

    >> Über DAO kann man zwar CompactAndRepair aufrufen, aber nur für MDBs.
    Da muss ich mir mal selbst widersprechen :-)

    Microsoft Office Access database Engine 2007

    Verweis auf "Microsoft Office 12.0 Access database Engine" setzen, das ist das "neue DAO".
    Und dann kannst Du über DAO CompactDatabase aufrufen und das Pwd auch per Parameter übergeben.


    Public Sub TestCompact()
        Dim acc As New DAO.DBEngine
       
        acc.CompactDatabase "C:\test.accdb", "C:\testdst.accdb", , , "pwd=..."
       
    End Sub
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Donnerstag, 15. Oktober 2009 08:49

Alle Antworten

  • Hallo Philipp B.

    wenn Du (auf dem Rechner) Access 2007 in der Vollversion hast, ist es recht einfach.

    Public Sub TestCompact()

        Dim app As Access.Application

       

        Set app = New Access.Application

        app.CompactRepair "C:\test.accdb", "C:\testCompact.accdb", False

        Set app = Nothing

       

    End Sub


    Nach erfolgreichem Compact löscht / verschiebt man die alte und benennt die neue auf den alten Namen um.



    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 12. Oktober 2009 13:43
  • Hallo Olaf,

    danke für die Antwort.
    Auf meinem Rechner ist die Vollversion installiert. Die Komprimierung soll aber auf dem Server erfolgen. Dort ist nur die AccessRuntime installiert. Damit lassen sich ACCDE Datein öffnen.

    Zum anderen kommt hinzu, dass die Datenbank mit einem Passwort geschützt ist. Wie kann es in die "app.CompactRepair "C:\test.accdb", "C:\testCompact.accdb", False" einbauen? Oder wo soll ich das Passwort eintragen?

    Danke
    Montag, 12. Oktober 2009 14:11
  • Hallo Philipp,

    habe ich mir gedacht, dann fällt der Weg schon mal weg.
    Über DAO kann man zwar CompactAndRepair aufrufen, aber nur für MDBs.
    ADOX kann kein Compact.

    Einfachste Lösung:
    Access RT per Shell mit Parameter /pwd und /compact aufrufen; und wenn das Programm nur komprimieren soll, reicht eine Verknüpfung aus

    "C:\Programme\Microsoft Office\Office12\MSACCESS.EXE" "C:\test.accdb" /pwd DeinPasswort /compact

    (extra mit der RT getestet, geht)

    Siehe auch:
    http://www.dbwiki.de/wiki.php?title=Access_Anf%E4nger:_Startparameter_f%FCr_Access
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 12. Oktober 2009 14:31
  • Hallo Philipp,

    >> Über DAO kann man zwar CompactAndRepair aufrufen, aber nur für MDBs.
    Da muss ich mir mal selbst widersprechen :-)

    Microsoft Office Access database Engine 2007

    Verweis auf "Microsoft Office 12.0 Access database Engine" setzen, das ist das "neue DAO".
    Und dann kannst Du über DAO CompactDatabase aufrufen und das Pwd auch per Parameter übergeben.


    Public Sub TestCompact()
        Dim acc As New DAO.DBEngine
       
        acc.CompactDatabase "C:\test.accdb", "C:\testdst.accdb", , , "pwd=..."
       
    End Sub
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Donnerstag, 15. Oktober 2009 08:49
  • Hallo Philipp,

    >> Über DAO kann man zwar CompactAndRepair aufrufen, aber nur für MDBs.
    Da muss ich mir mal selbst widersprechen :-)

    Microsoft Office Access database Engine 2007

    Verweis auf "Microsoft Office 12.0 Access database Engine" setzen, das ist das "neue DAO".
    Und dann kannst Du über DAO CompactDatabase aufrufen und das Pwd auch per Parameter übergeben.


    Public Sub TestCompact()
        Dim acc As New DAO.DBEngine
       
        acc.CompactDatabase "C:\test.accdb", "C:\testdst.accdb", , , "pwd=..."
       
    End Sub
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Perfekt !!!
    Funzt !!!

    Hast in dem Beispiel ein ";" vor pwd vergessen. Jetzt läuft es.

    Suuuper, vielen dank !!!  :-)
    Montag, 26. Oktober 2009 15:35