Skip to main content

AccessTr.neT


Bağlı Tabloların Sıkıştır Ve Onarı

Bağlı Tabloların Sıkıştır Ve Onarı

Çözüldü #1
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.?
.rar A1.rar (Dosya Boyutu: 34,65 KB | İndirme Sayısı: 2)
Cevapla
#2
ç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
Cevapla
#3
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
Cevapla
#4
(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
Cevapla
#5
Çok tşk ederim berduş hocam...
Cevapla
#6
rica ederim
iyi çalışmalar)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da