• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ilişkili kayıt silme

  • Konbuyu başlatan Konbuyu başlatan esref55
  • Başlangıç tarihi Başlangıç tarihi
Katılım
21 Aralık 2006
Mesajlar
90
Excel Vers. ve Dili
excel 2003
Merhaba arkadaşlar
Bir ana form var, birde alt form.
Ana formdaki kayıt sili çalıştırdığımda, alt formadaki aynı kişiye ait kayıtları silmek istiyorum. Tablolarda kayıtlar olduğu için birincil anahtar oluşturamıyorum. Aşağıdaki komutu nasıl düzenlemeliyim.
Tablo1-Tablo2 deki [Ads] alanları uyumlu.
Private Sub Komut112_Click()
On Error Resume Next
If Me.NewRecord Then
Me.Undo
ElseIf MsgBox("Kayıt silinsin mi?", vbYesNo) = vbYes Then
Me.Recordset.Delete
End If
End Sub
 
Sorunuzu tam anlamadım ama Tablo1 dayalı bir formda oluşuracağınız bir düğmenin koduna aşağıdaki kodları yazarsanız, Tablo2de Ads alanları formdaki Ads Metin kutusuna eşit satırları siler.
Dosyanızı yedekleyerek deneyin.......
Dim ys As New ADODB.Recordset
Sorgu1 = "Delete* FROM Tablo2 WHERE Tablo2.Ads=" & Me.Ads
ys.Open Sorgu1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
 
Son düzenleme:
sayın omercerı
tablo1 deki silniyor tablo2 deki silinmiyor.
 
Kodlar Tablo2deki kayıtları siler , Tablo1de de silmesi için Aşağıdaki kodları Yukardaki mesajdaki kodların altına yazın.
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
 
Kodlar aşağıdaki gibi örnek ekte
Dim ys As New ADODB.Recordset
Sorgu1 = "Delete* FROM Tablo2 WHERE Tablo2.Ads=" & """" & Me.Ads & """"
ys.Open Sorgu1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
 

Ekli dosyalar

  • a.zip
    a.zip
    19.8 KB · Görüntüleme: 15
Sayın omerceri
istediğim olmadı.
tablo1 e bağlı form1 - tablo 2 ye bağlı form 2
form2 form1 in alt formu.
form1 deki kişiyi silince altformdaki ona bağlı kayıtlarda silinsin istiyorum.
 
Merhaba..

Önce alt formdaki verileri ortak alanı koşul gösterip sildirmelisiniz.. Sonra kişiyi sildirin.. Tabi tabloları ilişkilendirmiş olsaydınız bunlara gerek kalmazdı.. ;)

Örnek yapınızı eklerseniz kodlamada yardımcı olmaya çalışırım..
 
sayın omerceri ve sayın taruz ilginize teşekkür ederim.
içindeki bilgileri boşaltarak gönderiyorum. yardımcı olabilirseniz memnun olurum.
sağlık formundaki kişiyi silince, gorevlendirme formundaki kişiyi de silmeli.
 

Ekli dosyalar

Kodları aşağıdaki gibi değiştirirseniz, Formdan da siler.
Dim ys As New ADODB.Recordset
Sorgu1 = "Delete* FROM Tablo2 WHERE Tablo2.Ads=" & """" & Me.Ads & """"
ys.Open Sorgu1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Me.Refresh
 
Merhaba..

Alternatif olarak bunuda kullanabilirsiniz..

Kod:
On Error Resume Next
If Me.NewRecord Then
Me.Undo
ElseIf MsgBox("Kayıt silinsin mi?", vbYesNo) = vbYes Then
Set trz = Application.CurrentProject.Connection
    trz.Execute "Delete* FROM Tablo2 WHERE Tablo2.Ads=" & """" & Me.ADS & """"
    Me.Recordset.Delete
    trz.Close
    Set trz = Nothing
    Me.Requery
End If
 
Değerli Arkadaşlar
aynı şekilde arşive aktar butonuna kod yazabilirmiyiz. yani arşive aktarırkende
alt forma ait tablo bilgisini silebilirmiyiz.
 
Sayın Taruz ve Sayın Omerceri
Yardımlarınız için çok teşekkür ederim. Sorunum halledildi.
 
Geri
Üst