AccessTr.neT

Tam Versiyon: Formda Açılır Kurularda 3101 Hatası Veriyor
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
iyi çalışmalar;

Formda yeni ekleme yaparken Çalışıyor/ayrıldı, Vize Bitiş Tarihi ve Personel özel Durum seçimlerinde  3101 hatası veriyor.

[Resim: do.php?imgf=1fab916846721.jpg]
1 - neden aşağıdaki kodu sürekli kullanmışsınız?
"'Form_Frm_Usta_Bilgileri.Form.Requery" aktif form değil mi
2 - bu formun bağlı olduğu tabloda "boş olmaması gereken" alan hangisi?
"VizeTakipID" ise bu alan neye göre oluşturuluyor, otomatik sayı değil?

Private Sub Calisiyor_Ayrildi_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Gorevi_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Personel_Ozel_Durumu_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Personel_Ozel_Durumu_Change()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Vize_Bitis_Trh_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
[Resim: do.php?imgf=0d04bc01cb231.jpg]
Sayın @haziran4, @"haliliyas"ın cevabına ek olarak, formun kayıt kaynağındaki sorguya göre, forma yeni kayıt eklerken tablolarda birincil anahtar olarak belirlenen alanlara veri eklenmesi lazım.

UstaBul butonu ile metin kutusuna veri aktarmazsanız formun alt kısmına eklediğiniz "UstaID" metin kutusu boş kalır. Bu alan boş iken kaydet butonuna tıklarsanız resimdeki hatayı verir. Kaydet butonuna dolu olması gereken alanların kontrolü için;


if len(UstaID) = 0 then

msgbox("Usta seçin")
exit sub
elseif len(FirmaID)=0  then

msgbox("firma seçin")
exit sub
end if


şeklinde kod eklemelisiniz. 

İlişkilendirmeye göre "Tbl_Ustalar_Data" isimli tablodaki VizeTakipID alanına veri kaydedilmesi gerekli. Kayıt esnasında tablodaki bu alan boş kalıyor. Tablodaki VizeTakipID alanının veri türünü Otomatik sayı olarak değiştirmeniz gerekli.
(23/05/2019, 10:38)haliliyas yazdı: [ -> ]
Private Sub Calisiyor_Ayrildi_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Gorevi_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Personel_Ozel_Durumu_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Personel_Ozel_Durumu_Change()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
___________________________________
Private Sub Vize_Bitis_Trh_AfterUpdate()
'Form_Frm_Usta_Bilgileri.Form.Requery
End Sub
[Resim: do.php?imgf=0d04bc01cb231.jpg]

Bu alanlar daki değişiklik ile Aktif Pasife otomatik yansıması için
o zaman sadece aktif pasif alanını "requery" yapmanız daha uygun olmaz mı?
ayrıca @ozanakkaya hocamın belirttiği gibi gerekli alanı nasıl halletmeyi düşünüyorsunuz?
(24/05/2019, 11:44)haliliyas yazdı: [ -> ]o zaman sadece aktif pasif alanını "requery" yapmanız daha uygun olmaz mı?
ayrıca @ozanakkaya hocamın belirttiği gibi gerekli alanı nasıl halletmeyi düşünüyorsunuz?

oraları @ozanakkaya hocamın dediği bi i kaydet e ekleme yaptım.

Geçerli olduğunda da
siz hocalarımın yardımı ile şu kodları yazmıştık


Private Sub Form_Current()

If Calisiyor_Ayrildi = "Ayrılmış" Then

    Me.Aktif_Pasif = "Ayrılmış"

    ElseIf Calisiyor_Ayrildi = "Kapalı" Then

    Me.Aktif_Pasif = "Kapalı"

    Me.Vize_Baslangic_Trh = ""

    Me.Vize_Bitis_Trh = ""

    Me.Metin40.BackColor = vbRed

Exit Sub

    

ElseIf Me.Personel_Ozel_Durumu <> "" Then Me.Aktif_Pasif = "Aktif"

Me.Metin40.BackColor = vbGreen

ElseIf Me.Vize_Bitis_Trh < Date Then Me.Aktif_Pasif = "Pasif"

Me.Metin40.BackColor = vbRed

ElseIf Me.Personel_Ozel_Durumu = "" Or Me.Vize_Bitis_Trh < Date Then Me.Aktif_Pasif = "Pasif"

Me.Metin40.BackColor = vbRed



End If

Form_Frm_Usta_Bilgileri.Form.Requery
End Sub


açılır kutulardaki verilere göre aktif pasif yazması için güncelleştirme sonrasında sayfayı yenilerse o kodlar aktif olur ve yazar diy düşünmüştüm.  Ama istediğim olmuyor. 
Sayfalar: 1 2