Avatar billede 123456789 Nybegynder
20. august 2001 - 18:25 Der er 4 kommentarer og
1 løsning

Komprimer access fra visual basic

Jeg har en PC som styrer en maskine. Et operatør program bruger access som db, og det kører fint. Ligeledes kaldes en udskrift macro OK. MEN en anden macro for at komprimere databasen kan jeg ikke få til at køre. Macroen er bygget op via taste funktion, og hedder således \"%kfe\", for at komprimere, og den kører fint fra access, men jeg kan ikke aktivere den fra det andet program. Styreprogrammet har VBA inkluderet, og det er herfra jeg kalder macroerne.
Access står tændt på maskinen hele tiden

Nogen forslag.
Avatar billede infojens Nybegynder
21. august 2001 - 09:31 #1
Fandt lige lidt gammel kode:

Public Sub KomprimerAccess(DatabaseSti As String)

Dim fso As New FileSystemObject
Dim engine As Object

Set fso = CreateObject(\"Scripting.FileSystemObject\")
Set engine = CreateObject(\"DAO.DBEngine.35\")

Dim D2 As String

On Error Resume Next
D2 = Left$(DatabaseSti, Len(DatabaseSti) - 4)

D2 = D2 & \"T\" & \".mdb\"


engine.CompactDatabase DatabaseSti, D2
 
fso.DeleteFile DatabaseSti
fso.MoveFile D2, DatabaseSti

Set fso = Nothing
Set engine = Nothing

End Sub
Avatar billede marla05 Nybegynder
22. august 2001 - 11:54 #2
infojens har ret.

Hvis du inkludere DAO i din referenceliste, kan du undgå alt besværet med at oprette objekter.

Du kan derefter uden større problemer kalde funktionerne:

RepairDatabase()
CompactDatabase()

Avatar billede 123456789 Nybegynder
22. august 2001 - 19:42 #3
hmmmmmm

Jeg er ikke den store VB haj, så jeg kan ikke helt gennemskue hvad du gør ovenover, men jeg har via metoden \"DBEngine.CompactDatabase .....\"
fået det til at køre, hvor jeg først kopier til en ny komprimeret, sletter den gamle, og omdøber den nye til det gamle navn. Dette kører OK....men
det er kun når access er lukket ned at det virker, og jeg har databasen til at stå åben hele tiden.

Når der skal komprimeres ved jeg at databasen ikke er i brug. Kan jeg i skriptet lukke access filen ned først (eller skal det være hele access??)
derefter køre komprimeringen, og til sidst aktivere access igen??

Jeg regner med at det er sådan noget jeg er nødt til, men kender ikke koderne for at \"slukke\" og \"tænde\" igen

Håber nogen kan hjælpe, og tak for de sendte svar.
123...
Avatar billede 123456789 Nybegynder
22. august 2001 - 19:44 #4
For øvrigt....

Jeg har oprettet DAO i referencelisten...det er igennem denne at al kommunikation til/fra DB foregår, jeg bruger ikke ODBC.
Avatar billede 123456789 Nybegynder
04. september 2001 - 08:15 #5
Spørgsmål lukkes hermed
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester