Cvp: Ribbon Menü - ozanakkaya - 23/07/2018
Önceki mesajımda kodu Case "btnBrmYonKadet" kodunun üzerine eklemeniz gerektiğini yazmıştım. Siz ise kod bloğunun en altına hata durumunda çalışacak yere yazmışsınız.
KODU Case "btnBrmYonKadet" KODUNUN ÜZERİNE YAZIN.
Case "btnBrmYonSil"
Dim silinecek_firma As String
Dim fso
AccessTrneT_BirimNo = Forms![FRM_BIRIM_YONETIMI]![txtBirimNo]
DoCmd.SetWarnings False
If MsgBox("Seçtiğiniz Birime ait Veri slinecektir. " & vbCrLf & vbCrLf & "Birimi Silmek İstediğinize emin misiniz?.", vbCritical + vbYesNo, "birimSilmeOnayi") = vbYes Then
silinecek_firma = CurrentProject.Path & "\Birimler\DataBirim\Birim" & AccessTrneT_BirimNo
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(silinecek_firma) = True Then
fso.deleteFolder (silinecek_firma)
End If
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLBİRİMLER WHERE (((BIRIMNO)='" & AccessTrneT_BirimNo & "'));"
MsgBox "Birim başarıyla silindi.", vbInformation + vbOKOnly, "İşlem Başarılı"
End If
If Nz(DCount("*", "TBLDONEMLER", "BIRIMNO='" & AccessTrneT_BirimNo & "'"), 0) > 0 Then
If MsgBox("Birime Ait Dönem Kaydı Mevcut. Kayıt Silinsin mi?", vbYesNo) = vbYes Then
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLDONEMLER WHERE (((BIRIMNO)='" & AccessTrneT_BirimNo & "'));"
MsgBox "Dönem başarıyla silindi.", vbInformation + vbOKOnly, "İşlem Başarılı"
End If
End If
Forms![FRM_BIRIM_YONETIMI].Requery
Forms![FRM_BIRIM_YONETIMI]!Lst_Birim.Requery
Forms![FRM_BIRIM_YONETIMI]!txtEmpTotal = Forms![FRM_BIRIM_YONETIMI]!Lst_Birim.ListCount
DoCmd.SetWarnings True
Cvp: Ribbon Menü - metin02 - 23/07/2018
Teşekkürler.
Anlatmak istediğim şu: Silinecek birimin altında dönem varsa silme işlemini gerçekleştirmeyecek. Önce dönemin silinmesini isteyecek.
Cvp: Ribbon Menü - ozanakkaya - 23/07/2018
Case "btnBrmYonSil"
Dim silinecek_firma As String
Dim fso
AccessTrneT_BirimNo = Forms![FRM_BIRIM_YONETIMI]![txtBirimNo]
Dim varmi_donem As Byte
varmi_donem = DCount("DONEMYILI", "TBLDONEMLER", "BIRIMNO='" & AccessTrneT_BirimNo & "'")
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"
Forms![FRM_BIRIM_YONETIMI].Undo
Exit Sub
Else
If MsgBox("Birimi sildiğiniz takdirde tüm bilgilerinizi kaybedeceksiniz!!!" & vbCrLf & vbCrLf & " " & Forms![FRM_BIRIM_YONETIMI]![txtBirimAdi] & " Biriminin kayıtlarını silmek istediğinize emin misiniz?", vbCritical + vbYesNo, "Kritik İşlem Kararı!") = vbYes Then
silinecek_firma = CurrentProject.Path & "\Birimler\DataBirim\Birim" & AccessTrneT_BirimNo
DoCmd.SetWarnings False
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(silinecek_firma) = True Then
fso.deleteFolder (silinecek_firma)
End If
DoCmd.RunSQL "DELETE BIRIMNO FROM TBLDONEMLER WHERE (((BIRIMNO)='" & AccessTrneT_BirimNo & "'));"
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
End If
Cvp: Ribbon Menü - metin02 - 23/07/2018
Elinize sağlık.
Birim klasöründen siliyor ancak Tbl_BİRİMLER tablosundan silmiyor.
Cvp: Ribbon Menü - ozanakkaya - 23/07/2018
Önceki mesajda yazdığım kodda, silme sorgusundaki tablo ismini TBLBİRİMLER olarak değiştirin.
Cvp: Ribbon Menü - metin02 - 23/07/2018
Ozan bey teşekkürler.
Sorun çözülmüştür.
Hayırlı günler.
|