Avatar billede skwat Praktikant
25. oktober 2002 - 11:27 Der er 5 kommentarer og
1 løsning

ADO access kompri

kort og godt.
Jeg kan ikke finde ud af at finde ud af at komprimere en ACCESS database via ADO.
access2000, ADO2.7 og VB6

det er da nemt ikke?
Avatar billede a1a1 Novice
25. oktober 2002 - 14:10 #1
jeg ved ikke om du kan med ado (tror det ikke, kan ikke finde det) men du kan med DAO, her er et eksempel fra hjælpen (husk at tilføje Microsoft DAO 3.6 til dine referencer)

---------------------
This example uses the CompactDatabase method to change the version of a database. To run this code, you must have a Microsoft Jet version 1.1 database called Nwind11.mdb and you cannot use this code in a module belonging to Nwind11.mdb.

Sub CompactDatabaseX2()

  Dim dbsNorthwind As Database
  Dim prpLoop As Property

  Set dbsNorthwind = OpenDatabase("Nwind11.mdb")

  ' Show the properties of the original database.
  With dbsNorthwind
      Debug.Print .Name & ", version " & .Version
      Debug.Print "  CollatingOrder = " & .CollatingOrder
      .Close
  End With

  ' Make sure there isn't already a file with the
  ' name of the compacted database.
  If Dir("Nwind20.mdb") <> "" Then _
      Kill "Nwind20.mdb"

  ' This statement creates a compact and encrypted
  ' Microsoft Jet 2.0 version of a Microsoft Jet version
  ' 1.1 database.
  DBEngine.CompactDatabase "Nwind11.mdb", _
      "Nwind20.mdb", , dbEncrypt + dbVersion20

  Set dbsNorthwind = OpenDatabase("Nwind20.mdb")

  ' Show the properties of the compacted database.
  With dbsNorthwind
      Debug.Print .Name & ", version " & .Version
      For Each prpLoop In .Properties
        On Error Resume Next
        If prpLoop <> "" Then Debug.Print "  " & _
            prpLoop.Name & " = " & prpLoop
        On Error GoTo 0
      Next prpLoop
      .Close
  End With

End Sub

;)
Avatar billede kennethrisum Nybegynder
25. oktober 2002 - 22:55 #2
Komprimering af databasen kræver Access installeret på klienten og adgang til Objekt-hierakiet i Access.
Hvis det er komprimeing af databser ude på klienter, der ikke har Access installeret, vil jeg foreslå at man har to Access databaser med samme struktur. Det access gør når den 'komprimerer' en database er:

1) opretter en ny database med strukturen
2) kopierer dataene fra den ene originale database til den nye
3) sletter den originale
4) omdøber den nye database fil til samme navn som den gamle

Man kan gøre nøjagtig det samme via ado. Det eneste man skal gøre er, at have en tom database fil man omdøber til den fil man benytter i pkt 1. Hvis I ikke tror mig, så tag en stor Access database og komprimer den fra access mens I holder øje med biblioteket den ligger i fra explorer!
Avatar billede skwat Praktikant
27. oktober 2002 - 21:24 #3
Kennethrisum: Det er meget forkert det du siger, det er INTET krav at access skal være installeret.
a1: Jeg er også lidt bange for at ADO mere er tiltænkt ODBC(ol.), men det er sku' da noget lort at man skal lave ref. til to database motorer.
Avatar billede skwat Praktikant
19. februar 2004 - 07:42 #4
Det er nok længe siden, men for en god ordens skyld vil jeg nævne at alle svar og kommentar i denne tråd er forkerte.

kig http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q230/5/01.ASP&NoWebContent=1
Avatar billede a1a1 Novice
19. februar 2004 - 09:16 #5
nu kan mit svar jo ikke være "forkert", da det er taget direkte fra visual studio's hjælp..

;o)
Avatar billede skwat Praktikant
19. februar 2004 - 10:58 #6
Måske ikke forkert i forhold til virkeliheden, men i forhold til mit spørgsmål.
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