tip554 kollade jag på ang komprimering av accessdatabas, Komprimering innebär att Access-filen kopieras till ny fil, men utan gammalt skräp som finns kvar. Borttagna tabeller finns alltid kvar tills nästa tabell tas bort ex. Dessa saker kommer inte med i ny fil. Har testat att köra kod för att komprimera databaser, men det fungerar givetvis inte på den aktiva databasen och det är (i varje fall i för min del) den jag vill komprimera. Som jag förstår det måste du köra den rutinen från en annan databas. jag klippte ut hela koden rakt av och gjorde en kopia på min db, la den på annat ställe o pekade sökvägarna i koden på mina filer. Du komprimerar mdb-filen. Om du länkar till tabeller i andra databaser påverkas ju inte de, utan bara de objekt som finns i den aktuella databasen... <b>Lissu: Om jag bockar i den rutan, gäller det oavset vad som stänger databasen? Jag använder ju inte access för att hantera databasen, utan eget vb-prog.</b> Jag lägger ner detta:) Anser att tipset är felande för den tar bort båda databaserna i koden. Gör jag fel så ber jag om ursäkt men koden rakt av tar bort dom berörda databaserna. fattar det inte på annat sätt. Orkar inte kolla, men denna funktionen hämtade jag från ett fungerande program. (skapar även en backup)Konstigt tips i forumet tycker jag
det konstiga tycker jag e att koden tar bort databasen helt.
Kolla o ge kommentar.
i övrigt vill jag ha kod för komprimering av min databas.
/B
EDIT Tack:) (får inte dessa länkar o funka)Sv: Konstigt tips i forumet tycker jag
Vid kopieringen blir databasen komprimerad. När så är klart raderas ursprungsdatabasen och den nya databasen ges samma namn som borttagna. Så funkar det om du använder komprimering direkt i Access.Sv: Konstigt tips i forumet tycker jag
Har du testat att ställa in att databasen ska komprimeras automatiskt varje gång den stängs?
Det blev min lösning.
Inställningen finn under Verktyg - Alternativ - Allmänt och kryssrutan Komprimera vid stängning.Sv: Konstigt tips i forumet tycker jag
Det enda som hände va att ALLA två databaserna togs bort, varför? Meningen e ju inte o ta bort min db utan att göra den mindre.
Lissu: Om jag bockar i den rutan, gäller det oavset vad som stänger databasen? Jag använder ju inte access för att hantera databasen, utan eget vb-prog.
/BSv: Konstigt tips i forumet tycker jag
Förstod jag din fråga rätt?Sv: Konstigt tips i forumet tycker jag
Nu är ju inte jag Lissu... Men databasen komprimeras inte när du stänger ifrån ditt VB-program.
/JohanSv: Konstigt tips i forumet tycker jag
testa koden själva.
/BSv: Konstigt tips i forumet tycker jag
<code>
Function CompactDatabase(strPath As String) As Boolean
CompactDatabase = False
On Local Error GoTo fel
Dim jroJet As JRO.JetEngine
Dim strFolder As String
'Dim strFile As String
Set jroJet = New JRO.JetEngine
If Dir(strPath) = "" Then
MsgBox Replace(GetString(471), "<>", strPath), vbInformation
Exit Function
End If
strFolder = Left(strPath, InStrRev(strPath, "\"))
'strFile = Right(strPath, Len(strPath) - Len(strFolder))
If Dir(strFolder & "temp.mdb") <> "" Then
FileCopy strFolder & "temp.mdb", strFolder & Year(Now) & "-" & Right("0" & Month(Now), 2) & "-" & Right("0" & Day(Now), 2) & " " & Right("0" & Hour(Now), 2) & "_" & Right("0" & Minute(Now), 2) & "_" & Right("0" & Second(Now), 2) & ".mdb"
Kill strFolder & "temp.mdb"
End If
FileCopy strPath, strFolder & "temp.mdb"
Kill strPath
'jroJet.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFolder & "temp.mdb;Jet OLEDB:Database Password=" & getPass & ";Persist Security Info=False", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Jet OLEDB:Database Password=" & getPass & ";Persist Security Info=False"
jroJet.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFolder & "temp.mdb;Jet OLEDB:Database Password=" & getPass, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Jet OLEDB:Database Password=" & getPass
Kill strFolder & "temp.mdb"
CompactDatabase = True
On Local Error GoTo 0
Exit Function
fel:
MsgBox Err.Description & " (" & Err.Number & ")", vbInformation
On Local Error GoTo 0
End Function
</code>
/Johan