tüm tabloları tek bir düğme ile silme

28/01/2013, 23:47

karaayhan

tüm tabloları tek bir düğme ile silmek mümkün müdür ?
makro ile tek tek silmek yada delete ile silmek dışında
29/01/2013, 01:39

alpeki99

Önce ilişkileri silmeniz için bir fonksiyon

Public Function tumIliskileriSil()
Dim db As Database ' Current DB
Dim rex As Relations ' Relations of currentDB.
Dim rel As Relation ' Relationship being deleted.
Dim iKt As Integer ' Count of relations deleted.
Dim sMsg As String ' MsgBox string.

Set db = CurrentDb()
Set rex = db.Relations

iKt = rex.Count

Do While rex.Count > 0
rex.Delete rex(0).Name
Loop

End Function

sonra tabloları temizlemek için fonksiyon

Public Function tumTablolariSil()
On Error GoTo Hata_Yakala

Dim vt As DAO.Database
Dim rst As DAO.Recordset
Dim tabloSorgu As String

Set vt = CurrentDb()

tabloSorgu = "SELECT MSysObjects.Name FROM MSysObjects " & "WHERE Left$([Name],1)<>'~' AND Left$([Name],4)<>'MSys' " & "AND MSysObjects.Type =1 ORDER BY MSysObjects.Name"

Set rst = vt.OpenRecordset(tabloSorgu)

If Not rst.EOF Then
rst.MoveFirst

Do Until rst.EOF
rst.MoveNext
tabloAdi = "DROP TABLE " & rst!Name
vt.Execute tabloAdi
Loop
End If

rst.Close

Set rst = Nothing

Hata_Yakala:
MsgBox Err.Description
Exit Function

End Function

bir butonun tıklanma olayında

tumIliskileriSil
tumTablolariSil
29/01/2013, 18:32

karaayhan

sayın elpeki99 oldu çalışıyor teşekkürler,
sonunda geçerli kayıt yok! uyarısı veriyor ve sadece bir tane tablo kalıyor neden olabilir sizce?
29/01/2013, 23:07

alpeki99

Döngüde olmayan tablo ile ilgili işlem yapıldığından veriyor o hatayı. Düzeltilmesi çok basit olan bir şey ancak hızlıca ekleyeyim dediğim için detaylı incelememiştim. Vaktim olan bir gün bakmaya çalışırım.
31/01/2013, 20:11

karaayhan

teşekkürler sayın alpeki bekliyorum yeni cevabınızı kolay gelsin