none
Von VB6 zum DatenbankTool RRS feed

  • Frage

  • Hallo alle zusammen,
    ich arbeite mit VB6 und Access 2010 (*.aacdb), das funktioniert auch.
    Aber ich habe da mal eine Frage:
    Ab und zu sollte man die Access-DB mal komprimieren. Dazu gibt es in der Access-DB unter Datenbanktools den entsprechenden Button Datenbank komprimieren und reparieren.
    Wie aber kann ich den Befehl von einer VB6-Anwendung ausführen?

    Sicher kann mir jemand einen Tipp geben.

    Mit freundlichen Grüßen
    Detlev

    Freitag, 13. Januar 2012 13:18

Antworten

Alle Antworten

  • Am 13.01.2012 schrieb Detlev2:

    ich arbeite mit VB6 und Access 2010 (*.aacdb), das funktioniert auch. Aber ich habe da mal eine Frage: Ab und zu sollte man die Access-DB mal komprimieren. Dazu gibt es in der Access-DB unter Datenbanktools den entsprechenden Button*Datenbank komprimieren und reparieren*. Wie aber kann ich den Befehl von einer VB6-Anwendung ausführen?

    http://www.activevb.de/tipps/vb6tipps/tipp0586.html
    http://vb-tec.de/mdbcomp.htm
    http://www.gssg.de/vbdb.htm
    http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0234.shtml

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Reg2xml:  http://www.reg2xml.com - Registry Export File Converter

    Freitag, 13. Januar 2012 22:02
  • Hallo Winfried,

    Deine Links sind zwar sehr schön, aber leider verfehlen alle das Ziel.

    Ich hatte geschrieben, das ich mit VB6 und Access 2010 (*.accdb) arbeite. Sicher arbeitest Du noch nicht mit dem neuen Access 2010. Ab diesem Access wird ein neuer Provider eingesetzt "Microsoft.ACE.OLEDB.12.0". Mit diesem Provider funktioniert das nicht mehr so wie früher. Irgendetwas muss geändert werden, aber ich weiß nicht was. 

    PS Ich finde nur Tipps mit dem Provider "Microsoft.Jet.OLEDB.4.0"


    Mit freundlichen Grüßen Detlev

    • Bearbeitet Detlev2 Samstag, 14. Januar 2012 09:18
    Samstag, 14. Januar 2012 08:43
  • Am 14.01.2012 schrieb Detlev2:

    Deine Links sind zwar sehr schön, aber leider verfehlen alle das Ziel.

    Ich hatte geschrieben, das ich mit VB6 und Access 2010 (*.accdb) arbeite. Sicher arbeitest Du noch nicht mit dem neuen Access 2010.

    Doch, arbeite ich. Allerdings nicht mehr mit VB6 in dieser
    Kombination.

    Ab diesem Access wird ein neuer Provider eingesetzt*"Microsoft.ACE.OLEDB.12.0"*. Mit diesem Provider funktioniert das nicht mehr so wie früher. Irgendetwas muss geändert werden, aber ich weiß nicht was. 

    Ich hab diesen Code erfolgreich in VB 6 mit einer accdb getestet:

            Dim acc As New DAO.DBEngine
            acc.CompactDatabase "D:\Daten\VB6\Database11.accdb", "D:\Daten\VB6\Database12.accdb"

    Geklaut hab ich den Code aus diesem Thread:
    http://social.msdn.microsoft.com/Forums/de-DE/vbklassikde/thread/55ea10fb-9da9-4829-bfe9-6505b1396931/

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Sonntag, 15. Januar 2012 22:59
  • Hallo Winfried,

    vielen herzlichen Dank, dass Du Dir die große Mühe gemacht hast, mich weiter zu unterstützen. Leider funktioniert es bei mir nicht. Ich glaube aber das der Unterschied darin liegt, dass ich mit ADO arbeite. So wie Du schreibst, funktioniert es ja mit DAO.

    In dem Thread auf den Du mich hingewiesen hast, steht noch eine andere Lösung, die ich mal ausprobieren will. Vielleicht habe ich damit ja Glück. Wenn der Weg auch anders ist, so sollte das Ergebnis doch stimmen.

    Einfachste Lösung von Olaf Helper:
    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

    Ich werde die Sache einfach mal testen.

    #############################################

    Hallo Winfried,

    ich habe compact jetzt mal mit dem shell-Command getestet.

    Shell "C:\Programme\Microsoft\Office14\MSACCESS.EXE C:\TestDB.accdb /compact"

    Das hat funktioniert. Im Nachhinein ist mir eingefallen, dass nützt mir auch nicht immer etwas, denn wenn auf dem PC nur die AccessDatabaseEngine zur Verfügung steht wird das mit shell sehr wahrscheinlich nicht funktionieren. 


    Mit freundlichen Grüßen Detlev

    • Bearbeitet Detlev2 Montag, 16. Januar 2012 13:11
    Montag, 16. Januar 2012 11:36
  • vielen herzlichen Dank, dass Du Dir die große Mühe gemacht hast, mich weiter zu unterstützen. Leider funktioniert es bei mir nicht. Ich glaube aber das der Unterschied darin liegt, dass ich mit ADO arbeite. So wie Du schreibst, funktioniert es ja mit DAO.

    Du kannst dir diesen Thread auch ansehen: http://social.msdn.microsoft.com/Forums/da-DK/adodotnetdataproviders/thread/ddf4519f-b69f-4d40-b2f4-fe4987305b0f 

    Vermutlich wirst Du nicht umhin kommen entweder auf MDB umzusteigen, oder mit DAO die ACCDB zu komprimieren. Alles andere ist IMHO Bastelei und bringt dich nicht weiter.

    Servus

    Winfried

    Montag, 16. Januar 2012 14:50
  • Hallo Winfried,

    gestern habe ich mich noch mit DAO und ADO beschäftigt. Hierbei habe ich folgenden interessanten Beitrag von FranzH gelesen:

    http://www.ms-office-forum.net/forum/sitemap/index.php?t-51786.html 

    Das hat mich doch zum Nachdenken gebracht. Im Nachhinein war es bei mir genauso wie beschrieben. Ich dachte DAO ist alt, ADO ist neu also werde ich mich mit ADO beschäftigen. Da ich aber ausschließlich mit Access-DB's arbeite sollte ich wirklich nach DAO umsteigen. Ich glaube es würde einiges erleichtern und die Komprimierung wäre auch kein Thema mehr.

    Nochmal vielen Dank für Deinen Einsatz. Ich wünsche Dir noch einen schönen Tag. 

    PS ich glaube wir können den Thread schließen.


    Mit freundlichen Grüßen Detlev
    Dienstag, 17. Januar 2012 08:24
  • Am 17.01.2012 schrieb Detlev2:

    gestern habe ich mich noch mit DAO und ADO beschäftigt. Hierbei habe ich folgenden interessanten Beitrag von FranzH gelesen:

    http://www.ms-office-forum.net/forum/sitemap/index.php?t-51786.html 

    Der Beitrag ist aus dem Jahr 2001!

    Das hat mich doch zum Nachdenken gebracht. Im Nachhinein war es bei mir genauso wie beschrieben. Ich dachte*DAO* ist alt,*ADO* ist neu also werde ich mich mit ADO beschäftigen. Da ich aber ausschließlich mit Access-DB's arbeite sollte ich wirklich nach DAO umsteigen. Ich glaube es würde einiges erleichtern und die Komprimierung wäre auch kein Thema mehr.

    Du kannst ja zur Komprimierung DAO nutzen, beim Rest würde ich nichts
    am laufenden System ändern. Nur evtl. über einen Umstieg auf eine
    aktuelle Entwicklungsumgebung nachdenken.

    Nochmal vielen Dank für Deinen Einsatz. Ich wünsche Dir noch einen schönen Tag. 

    Bitte, gern geschehen. ;)

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Dienstag, 17. Januar 2012 21:45