AccessTr.neT

Tam Versiyon: Bağlı Tabloların Sıkıştır Ve Onarı
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba arkadaşlar, sıkıştır ve onar konusuna istinaden yeni konu açıyorum,
belgem çalışırken bağlı tablolarımın olduğu belgeyi nasıl sıkıştır ve onar yapabilirim.?
çalışmanız hata veriyor çünkü bağlı tablodan veri alan bir form kullanıyorsunuz
önce ilgili formun kayıt kaynağını boşaltmanız gerekiyor
FrmTbl = Me.RecordSource <== bu kod ile formunuzun kayıt kaynağı değişkene atanacak
Me.RecordSource = ""<== bu kod ile formunuzun kayıt kaynağı boşaltılıp bağlantı kesilecek
..........
Me.RecordSource = FrmTbl <== bu kod ile formunuzun kayıt kaynağı tekrar bağlanacak

Private Sub Komut11_Click()
Dim TblAdi As TableDef
Dim BglVtAdr, DzBglVtAdr As String
Dim BglVt As Object
DzBglVtAdr = ""
FrmTbl = Me.RecordSource
Me.RecordSource = ""


'Veritabanındaki Tüm Bağlı tabloların Adresini alır ve mtin olarak kaydeder
For Each TblAdi In CurrentDb.TableDefs
TmpAdres = TblAdi.Connect

x = InStr(1, TmpAdres, ";DATABASE=")
TmpAdres = Mid(TmpAdres, 11)
If x = 1 And Len(TmpAdres & "") > 0 And InStr(1, DzBglVtAdr, TmpAdres) = 0 Then DzBglVtAdr = DzBglVtAdr & ";" & TmpAdres

Next TblAdi
BglVtAdr = Split(DzBglVtAdr, ";") 'farklı Vtlerden bağlanmış tablolar varsa tüm diğer VTlerin adlarını diziye aktarır

For x = 1 To UBound(BglVtAdr) '
AciksaKapat CStr(BglVtAdr(x))

DBEngine.CompactDatabase BglVtAdr(x), BglVtAdr(x) & "TMP"
If Dir(BglVtAdr(x) & ".BCK") <> "" Then Kill BglVtAdr(x) & ".BCK"
Name BglVtAdr(x) As BglVtAdr(x) & ".BCK"
Name BglVtAdr(x) & "TMP" As BglVtAdr(x)
If Dir(BglVtAdr(x) & "TMP") <> "" Then Kill BglVtAdr(x) & "TMP"
If Dir(BglVtAdr(x) & ".BCK") <> "" Then Kill BglVtAdr(x) & ".BCK"

Next x
Me.RecordSource = FrmTbl

MsgBox "Sıkıştır onar bitti"
End Sub
Berdus hocam çok teşekkür ederim,
FrmTbl = Me.RecordSource
satırında hata verdi,
bende aşağıdaki kodları pasif edince hata vermeden işlemi bitirdi.

'Option Compare Database
'Option Explicit
(26/05/2023, 21:17)ates2014 yazdı: [ -> ]Option Explicit
bu satır fonksiyonda kullanılan her değişkeni kullanmadan önce tanımlamanızı zorunlu kılar
diyelim ki FrmTbl = Me.RecordSource kullanacaksanız bu değişken atamasını kullanmadan önce
dim FrmTbl ile tanımlamanız gerekli
dolayısıyla sadece o satırı pasif yapmanız yeterli
Option Compare Database satırını pasif yapmayın bazı durumlarda o satır olmazsa hatalı sonuçlar üretilebilir
Çok tşk ederim berduş hocam...
rica ederim
iyi çalışmalar)