17-06-2019, 16:27
(14-06-2019, 23:26)magggmar demiş ki:(14-06-2019, 22:09)haliliyas demiş ki: son olarak aşağıdaki kodu önerebilirim.
ben sadece cari ünvana göre yaptım siz isterseniz diğer alanları da eklersiniz. ama yinede ribbon menü yerine üstteki çarpıdan kapatırsanız boşsa bile kaydeder.
onu engellemenin yolu doğrudan mevcut formun kapanma olayına yazmak yada o alanı mecburi dolu alan olarak belirlemek.
Kod:Public Sub ButtonAction(control As IRibbonControl)
Dim x As Integer
Select Case control.ID
Case "btn101"
If CurrentProject.AllForms("frmCariDetay").IsLoaded Then
DoCmd.GoToRecord , , acNewRec
End If
Case "btn104"
If CurrentProject.AllForms("frmCariDetay").IsLoaded Then
If Forms![frmCariDetay]![txtCariUnvani] = vbNullString Or IsNull(Forms![frmCariDetay]![txtCariUnvani]) Then
MsgBox "Lütfen Cari Unvanı boş bırakmayınız!", vbExclamation, "Uyarı"
Exit Sub
Else
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Bilgiler Başarıyla Kaydedildi", vbInformation, "İşlem Tamam"
DoCmd.GoToRecord , , acLast
End If
End If
Case "btn106"
If CurrentProject.AllForms("frmCariDetay").IsLoaded Then
If Forms![frmCariDetay]![txtCariUnvani] = vbNullString Or IsNull(Forms![frmCariDetay]![txtCariUnvani]) Then
x = MsgBox("Cari Unvanı boş bırakılmış!yine de kapatmak istiyormusunuz. kaydetmeden kapatmak için 'OK'ye kayda dönmek için 'İptal'e basın", vbOKCancel, "Uyarı")
If x = 1 Then
Forms("frmCariDetay").Undo
DoCmd.Close acForm, "frmCariDetay"
Else
Exit Sub
End If
Else
MsgBox "Bilgiler Başarıyla Kaydedildi", vbInformation, "İşlem Tamam"
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close acForm, "frmCariDetay"
End If
End If
End Select
End Sub
Çok teşekkürler. Ofisteki bilgisayatda bu denemeyi yaptıgım için pazartesi bakabilecegim. Dener denemz bilglendireceğim
Maalesef verdiğiniz kodlarla da ek resimlerdeki sonuçları alıyorum