Hayırlı akşamlar.
Eklemiş olduğum dosyada birim sil butonunu form üzerinde yapabildim ancak menüde yapamadım. Menüde Yeni birim ekle ve kaydet yaptım.
Yardımcı olursanız sevinirim teşekkürler.
basRibbonCallbacks isimli modülde,
Case "btnBrmYonKadet"
Kodunun üzerine
Case "btnBrmYonSil"
If MsgBox(Forms![FRM_BIRIM_YONETIMI]![txtBirimNo] & " numaralı birimi silmek istediğinize emin misiniz", vbCritical + vbYesNo) = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLBİRİMLER WHERE (((TBLBİRİMLER.BIRIMNO)='" & Forms![FRM_BIRIM_YONETIMI]![txtBirimNo] & "'));"
DoCmd.SetWarnings True
Forms![FRM_BIRIM_YONETIMI].Requery
End If
kodu ekleyiniz.
Teşekkürler.
Kodlar çalışıyor ancak bu birimlerin altında birde dönemler var. Dönem olduğu zaman hata veriyor.
Aşağıdaki kodlar form üzerinde bulunan butona ait.
On Error GoTo Hata_Yakala
Dim varmi_donem As Byte
Dim silinecek_firma As String
varmi_donem = DCount("DONEMYILI", "TBLDONEMLER", "BIRIMNO='" & Me.txtBirimNo & "'")
If varmi_donem > 0 Then
MsgBox "Seçtiğiniz Birime ait çalışma dönemi mevcut." & vbCrLf & vbCrLf & "Birimi silmek istediğinizden eminseniz önce tüm dönemleri silmelisiniz.", vbCritical + vbOKOnly, "Mevcut Dönemler Var"
Me.Undo
Exit Sub
Else
If MsgBox("Birimi sildiğiniz takdirde tüm bilgilerinizi kaybedeceksiniz!!!" & vbCrLf & vbCrLf & " " & Me.txtBirimAdi & " Biriminin kayıtlarını silmek istediğinize emin misiniz?", vbCritical + vbYesNo, "Kritik İşlem Kararı!") = vbYes Then
silinecek_firma = CurrentProject.Path & "\Birimler\DataBirim\Birim" & Me.txtBirimNo
DoCmd.SetWarnings False
RmDir silinecek_firma
DoCmd.RunCommand acCmdDeleteRecord
Me.Lst_Birim.Requery
Me.txtEmpTotal = Me.Lst_Birim.ListCount
MsgBox "Birim başarıyla silindi.", vbInformation + vbOKOnly, "İşlem Başarılı"
DoCmd.SetWarnings True
End If
Hata_Cikis:
Me.Undo
End If
Exit Sub
Hata_Yakala:
If Err.Number = 75 Then
MsgBox "Silme işlemi gerçekleştirilemedi. Eğer program açık ise programdan çıkış yapmalısınız.", vbCritical + vbOKOnly, "Kritik Hata"
End If
Resume Hata_Cikis
Önceki mesajımda yazdığım kodu aşağıdaki ile değiştirerek deneyiniz.
Case "btnBrmYonSil"
If MsgBox("Seçtiğiniz Birime ait çalışma dönemi mevcut." & vbCrLf & vbCrLf & "Birimi sildiğinizde çalışma dönemi de silinecektir. Dönemi ve Birimi Silmek İstediğinize emin misiniz?.", vbCritical + vbYesNo, "Mevcut Dönemler Var") = vbYes Then
silinecek_firma = CurrentProject.Path & "\Birimler\DataBirim\Birim" & Forms![FRM_BIRIM_YONETIMI]![txtBirimNo]
DoCmd.SetWarnings False
RmDir silinecek_firma
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLDONEMLER WHERE (((BIRIMNO)='" & Forms![FRM_BIRIM_YONETIMI]![txtBirimNo] & "'));"
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLBİRİMLER WHERE (((BIRIMNO)='" & Forms![FRM_BIRIM_YONETIMI]![txtBirimNo] & "'));"
DoCmd.SetWarnings True
Forms![FRM_BIRIM_YONETIMI].Requery
Forms![FRM_BIRIM_YONETIMI]!Lst_Birim.Requery
Forms![FRM_BIRIM_YONETIMI]!txtEmpTotal = Forms![FRM_BIRIM_YONETIMI]!Lst_Birim.ListCount
MsgBox "Birim başarıyla silindi.", vbInformation + vbOKOnly, "İşlem Başarılı"
DoCmd.SetWarnings True
End If
![[Resim: KnAUIk.png]](https://resmim.net/f/KnAUIk.png)
![[Resim: f3AodY.png]](https://resmim.net/f/f3AodY.png)
Teşekkürler. Birimleri sildi ama dönem olan birimlerde eklemiş olduğum hatayı verdi.
Birde birimde dönem olduğu mesajını gösterip silme işlemini iptal etmesini sağlayabilirmiyiz.