18/03/2020, 12:30
18/03/2020, 13:06
Sn.@berduş
Tüm varyasyonları denedim sanırım Her bir tablo için if blok kodu çalıştırıp else ile bitirip bir sonraki tablonun if kodunu yazmaktansa hepsini alt alta yazmaya çalıştım. Ama çalışması için sanırım bir varyasyona daha ihtiyaç var. Bir bakarmısınız lütfen.
Tüm varyasyonları denedim sanırım Her bir tablo için if blok kodu çalıştırıp else ile bitirip bir sonraki tablonun if kodunu yazmaktansa hepsini alt alta yazmaya çalıştım. Ama çalışması için sanırım bir varyasyona daha ihtiyaç var. Bir bakarmısınız lütfen.
Private Sub Sil_BTN_Click()
If 0 = Nz(DCount("UyeNo", "T_UyeTahsilat", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or 0 = Nz(DCount("UyeNo", "T_UyeHesap", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or 0 = Nz(DCount("UyeNo", "T_UyeDestek", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or 0 = Nz(DCount("UyeNo", "T_UyeEtkinlik", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or 0 = Nz(DCount("UyeNo", "T_UyeBelgeler", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
If 0 = Nz(DCount("UyeNo", "T_UyeTahsilat", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or _
if 0 = Nz(DCount("UyeNo", "T_UyeHesap", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or _
if 0 = Nz(DCount("UyeNo", "T_UyeDestek", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or _
if 0 = Nz(DCount("UyeNo", "T_UyeEtkinlik", "[UyeNo]=" & Me.UyeNo_TXT), 0) Or _
if 0 = Nz(DCount("UyeNo", "T_UyeBelgeler", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
'If 0 = Nz(DCount("UyeNo", "T_UyeTahsilat", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
'If 0 = Nz(DCount("UyeNo", "T_UyeHesap", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
'If 0 = Nz(DCount("UyeNo", "T_UyeDestek", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
'If 0 = Nz(DCount("UyeNo", "T_UyeEtkinlik", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
'If 0 = Nz(DCount("UyeNo", "T_UyeBelgeler", "[UyeNo]=" & Me.UyeNo_TXT), 0) Then
If MsgBox("Üye Kaydý ve tüm bilgileri silinecek, Ýþlemin geri dönüþü yoktur. Eminmisiniz ? ", vbCritical + vbYesNo, " !!! DÝKKAT !!! ") = vbYes Then
CurrentDb.Execute "delete from T_Uye where [UyeNo]=" & Me.UyeNo_TXT
Dim fat As Control
For Each fat In Me.Form.Controls
Select Case fat.ControlType
Case acTextBox
fat.Value = ""
Case acComboBox
fat.Value = ""
Case acCheckBox
fat.Value = "0"
End Select
Next
End If
Else
MsgBox "DÝKKAT" & vbCrLf & ("Hareket gören kayýtlar silinemez."), vbCritical
'End If
'End If
'End If
'End If
End If
End Sub
18/03/2020, 13:11
1 - tablolar arası ilişki kurmak daha pratik olmaz mı?
2 - hepsi için ayrı ayrı if oluşturacağınız tüm dcountları toplayıp sonuç 0 mi diye kontrol etmek daha uygun olmaz mı?
If dcount(...) + dcount(...) +.....=0 then.....
gibi
2 - hepsi için ayrı ayrı if oluşturacağınız tüm dcountları toplayıp sonuç 0 mi diye kontrol etmek daha uygun olmaz mı?
If dcount(...) + dcount(...) +.....=0 then.....
gibi
18/03/2020, 13:22
(18/03/2020, 13:11)berduş yazdı: [ -> ]1 - tablolar arası ilişki kurmak daha pratik olmaz mı?2.maddeyi aklımdan geçirmiştim ama pratikte nasıl yazılır bilmiyordum hemen deneyeceğim.
2 - hepsi için ayrı ayrı if oluşturacağınız tüm dcountları toplayıp sonuç 0 mi diye kontrol etmek daha uygun olmaz mı?
If dcount(...) + dcount(...) +.....=0 then.....
gibi
1. madde Tabloları birbiriy le Uye No alanı üzerinden ilişkilendirdikten sonra ne yapmam gerekecek. Bire çok ilişki kurdum kayıtlarında ana tablodaki kayıt silindiğinde diğer ilişikteki kayıtlar silinmesin diye işaretledim diyelim. Sonrası nasıl gelecek uye harekeketlerini sildirmedik ama uye silinebiliyor. Orayı çözemiyorum.
18/03/2020, 13:34
(18/03/2020, 13:22)Oğuz Türkyılmaz yazdı: [ -> ]Aşağıdaki hatayı aldım.(18/03/2020, 13:11)berduş yazdı: [ -> ]1 - tablolar arası ilişki kurmak daha pratik olmaz mı?2.maddeyi aklımdan geçirmiştim ama pratikte nasıl yazılır bilmiyordum hemen deneyeceğim.
2 - hepsi için ayrı ayrı if oluşturacağınız tüm dcountları toplayıp sonuç 0 mi diye kontrol etmek daha uygun olmaz mı?
If dcount(...) + dcount(...) +.....=0 then.....
gibi
1. madde Tabloları birbiriy le Uye No alanı üzerinden ilişkilendirdikten sonra ne yapmam gerekecek. Bire çok ilişki kurdum kayıtlarında ana tablodaki kayıt silindiğinde diğer ilişikteki kayıtlar silinmesin diye işaretledim diyelim. Sonrası nasıl gelecek uye harekeketlerini sildirmedik ama uye silinebiliyor. Orayı çözemiyorum.
b-
c-
Private Sub Sil_BTN_Click()
If DCount("UyeNo", "T_UyeTahsilat", "[UyeNo]=" & Me.UyeNo_TXT) + _
DCount("UyeNo", "T_UyeHesap", "[UyeNo]=" & Me.UyeNo_TXT) + _
DCount("UyeNo", "T_UyeDestek", "[UyeNo]=" & Me.UyeNo_TXT) + _
DCount("UyeNo", "T_UyeEtkinlik", "[UyeNo]=" & Me.UyeNo_TXT) + _
DCount("UyeNo", "T_UyeBelgeler", "[UyeNo]=" & Me.UyeNo_TXT) = 0 Then
If MsgBox("Üye Kaydı ve tüm bilgileri silinecek, İşlemin geri dönüşü yoktur. Eminmisiniz ? ", vbCritical + vbYesNo, " !!! DİKKAT !!! ") = vbYes Then
CurrentDb.Execute "delete from T_Uye where [UyeNo]=" & Me.UyeNo_TXT
Dim fat As Control
For Each fat In Me.Form.Controls
Select Case fat.ControlType
Case acTextBox
fat.Value = ""
Case acComboBox
fat.Value = ""
Case acCheckBox
fat.Value = "0"
End Select
Next
End If
Else
MsgBox "DİKKAT" & vbCrLf & ("Hareket gören kayıtlar silinemez."), vbCritical
End If
End Sub
18/03/2020, 13:48
' Debug.Print DCount("UyeNo", "T_UyeDestek", "[UyeNo]=" & Me.UyeNo_TXT) ' +
' Debug.Print DCount("UyeNo", "T_UyeEtkinlik", "[UyeNo]=" & Me.UyeNo_TXT) ' +
' Debug.Print DCount("UyeNo", "T_UyeBelgeler", "[UyeNo]=" & Me.UyeNo_TXT) '
yanılmıyorsam bu satırda hata veriyor çünkü "T_UyeDestek","T_UyeEtkinlik" ve "T_UyeBelgeler" tablolarıen azından yüklediğiniz çalışmada yok