Benutzer mit den meisten Antworten
Von VB6 zum DatenbankTool

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
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.shtmlServus
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- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 16. Januar 2012 15:34
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 31. Januar 2012 10:18
-
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/- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 31. Januar 2012 10:19
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.shtmlServus
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- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 16. Januar 2012 15:34
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 31. Januar 2012 10:18
-
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
-
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/- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 31. Januar 2012 10:19
-
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
-
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
- Bearbeitet Robert BreitenhoferModerator Freitag, 3. Februar 2012 13:09 URL als Link
-
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 -
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.htmlDer 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/