Avatar billede Slettet bruger
30. august 2005 - 15:15 Der er 7 kommentarer og
2 løsninger

Automatisk komprimering af backend

I et flerbrugermiljø hvor der stort set altid er nogen, som er linket på backend er det så muligt at komprimere denne og især er det muligt at gøre det automatisk.

Evt. Hvis der opstår et "hul" hvor alle er lukket ned, kan man så lave en automatik, som kan køre en komprimering på BE (som jo ikke er åben i sig selv!~)
Avatar billede terry Ekspert
30. august 2005 - 19:56 #1
Avatar billede Slettet bruger
31. august 2005 - 09:47 #2
Nej, det virker ikke, fordi jeg har i så fald brug for at brugerne lukker ned, hvilket er besværligt og hvis jeg kunne få dem til det, så kunne jeg jo komprimere det selv!~)
Avatar billede Slettet bruger
31. august 2005 - 09:50 #3
Forresten koden man kan arbejde med i mit tilfælde:

With COMAddIns(TsiSoon90.Connect").Object
.FileToOpen = CurrentProject.FullName
.Exclusive = False
.FileIsAdp = False
.CompactOld = True
.CloseAll
End With
Avatar billede hugopedersen Nybegynder
31. august 2005 - 14:57 #4
Da du selv skriver "(som jo ikke er åben i sig selv!~)" siger det sig selv at du er nødt til at lave et eller andet i en frontend der gør det.
Personligt ville jeg nok gøre det at jeg lavede en formular med en timer på som med et eller andet interval checker om den kan få exclusiv adgang til din backend og hvis det så er tilfældet, så kører du noget kode der komprimerer den.
Formen skal du så bare åbne skjult hver gang du åbner din applikation.

Det er rimelig simpel kodning som du sikkert kan finde på nettet ellers må du lige sige til. Så skal jeg finde det frem af gemmerne.
Avatar billede monmike Nybegynder
31. august 2005 - 16:47 #5
Jeg gør det via en .bat fil, som jeg har sat serveren til at kører om natten via planlagte opgaver.
Koden i .bat filen:
C:
cd\Program Files\Microsoft Office\OFFICE11
MSAccess.exe O:\Mappen\Min-db_be.mdb /compact

Den checker ikke om der er nogen på, men hvis der er kører den bare ikke. Men så kører den bare dagen efter.
Avatar billede terry Ekspert
31. august 2005 - 18:59 #6
Why not shut down the appication to allow you to compact. I found this text a few years ago.

Create a table in the
database called "KickEmOff" containing one field, "GetOut", integer value,
default 0. Create a function that gets called from a Timer Event on a form
that is always up in the application. Function follows. If you want to be
nice, bring up a small modal form that displays the text "You are being
booted from the database. Auto Exiting in 10... 9... 8... " that gets closed
just before everything exits.

Function fGetOut()As Integer
Dim RetVal As Integer
Dim MyDB As Database
Dim MyRS As Recordset
On Error Goto Err_fGGO
Set MyDB = DBEngine.Workspaces(0).Databases(0)
Set MyRS = MyDB.OpenRecordset("KickEmOff", db_Open_Snapshot)
If MyRS.EOF and MyRS.BOF Then
RetVal = True
Goto Exit_fGGO
Else
If MyRS!GetOut = True Then
  'This is where you close down any forms, and quit the database
  'I leave this section as an exercise to the creative readers
Else
  RetVal = True
End If
End If
Exit_fGGO:
fGetOut = RetVal
Exit Function
Err_fGGO:
'Note lack of message box on error
Resume Next
End Function

Now, as the responsible DBA, you simply enter a record into "KickEmOff" with
a GetOut value of True (-1) and watch em all bail out like flies. The
fastest way I've found to determine if they're all out is if you can delete
the .ldb file. Then compact. Then enter the database and delete that record
from KickEmOut, or else nobody will be able to work in the database, and
they'll all be out for blood...
Avatar billede Slettet bruger
01. september 2005 - 09:38 #7
Okey, så har jeg da noget at arbejde med!~)

Tak, gutter....
Avatar billede terry Ekspert
01. september 2005 - 11:04 #8
selv tak
Avatar billede fynbohans Nybegynder
02. september 2005 - 15:44 #9
Hvis det er Access2003 er der en megen simpel måde at gøre det på!
I denne version lukker basen nemlig sig selv, hvis man komprimerer fra kommandolinjen
ved hjælp af en bat-fil.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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