AccessTr.neT
Bağlı Tabloların Sıkıştır Ve Onarı - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Bağlı Tabloların Sıkıştır Ve Onarı (/konu-bagli-tablolarin-sikistir-ve-onari.html)



Bağlı Tabloların Sıkıştır Ve Onarı - ates2014 - 26/05/2023

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.?


RE: Bağlı Tabloların Sıkıştır Ve Onarı - berduş - 26/05/2023

ç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



RE: Bağlı Tabloların Sıkıştır Ve Onarı - ates2014 - 26/05/2023

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


RE: Bağlı Tabloların Sıkıştır Ve Onarı - berduş - 26/05/2023

(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


RE: Bağlı Tabloların Sıkıştır Ve Onarı - ates2014 - 27/05/2023

Çok tşk ederim berduş hocam...


RE: Bağlı Tabloların Sıkıştır Ve Onarı - berduş - 27/05/2023

rica ederim
iyi çalışmalar)