Kusura bakmayın geç cevap için aynı sorun bende de vardı. Toplum Sağlığı Merkezi için yaptığım formlarda arkadaşlarım nasıl beceriyorlarsa boş kayıt oluşturuyorlardı. Bende şöyle bir çözüm yolu buldum. Öncelikle id Alan adınızın veri türü otomatik sayı olmayacak. Bunu yerine tablonuzu açın ve id alan adınının otomatik sayı olan veri türünü sayıya çevirin. Sonra yine tablonuzda ki SUCNO alanındaki verinin alan özelliklerinden gerekli kısmını hayır yapın. Diyeceksiniz ki ben o alanın dolmasını istiyorum. Onuda kaydet butonuna ekleyeceğimiz bir kod ile halledeceğiz. Gelelim Kodlara
Ekle butonunuzun olay yordamına aşağıdaki kodlar kopyalayıp yapıştırın.
Private Sub ekle1_Click()
On Error GoTo Err_ekle1_Click
If MsgBox("Yeni Kayıt Açılacak Emin misin ??", vbYesNo + vbQuestion, "AYDIN") = vbYes Then
DoCmd.GoToRecord , , acNewRec
Me.KOR = Nz(DMax("id", "TBL_ANA"), 0) + 1
Me.sucn.SetFocus
Exit_ekle1_Click:
Exit Sub
Err_ekle1_Click:
MsgBox Err.Description
Resume Exit_ekle1_Click
End If
End Sub
Kaydet kodu
If IsNull(Me![sucn]) Or Me.sucn = "" Or Me.sucn = 0 Then
MsgBox "Suç No Alanı Boş Bırakılamaz.. ", vbOKOnly + vbCritical, "Eksik Bilgi": Me.sucn.SetFocus
Else
If MsgBox("Kayıtlarda değişiklik yapılmış. Kaydetmek istediğinize emin misiniz?", vbQuestion + vbYesNo, "Aydın") = vbYes Then
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.RunCommand acCmdSaveRecord
Form.Recalc
Me.liste11.Requery
Me.Liste10.Requery
Else
Me.Undo
End If
End If
ve son olarakta Çıkış butonu olay yordamına bu kodları yazınız ki kapatırken eğer kaydet butonuna basılmadı ise kaydetmeden bütün verileri silsin ve boş kayıt atmadan cıksın.
If Me.Dirty Then Me.Undo
DoCmd.Close
Bu kodları kopyalayıp kendi formunuza yapıştırın. Daha bitmedi.
Formunuzun özellik sayfasından güncelleştirme öncesindeki olay yordamını silin.
Sonra formunuzun özellik sayfasındaki bicim sekmesinden kapat düğmesini hayır yapın
En son olarakta sağ tık olayını kapatmak için sizden başkası kullanıyorsa, sağ tıklayıp formu kapat derse, yine boş kayıt atacağı için sağ tık olayını ve kapatma düğmesini iptal etmemiz lazım.
Sağ tık için ise yine formunuzun özellik sayfasından diğer sekmesine tıklayıp kısayol menüsünü hayır a getirmeniz gerekiyor ki hayırlısı da budur form için.
Şimdi geldi neticeye;
Öncelikle ne yaptık
1- id yi kendimiz atadık
Access otomatik atmayacak.
2- kaydet butonunu sucno yu doldurmadan kaydetmemeye ayarladık. Ekle dedik id en son 9 du 10 diye id alanımıza yazdı sonra suc noyu yazdık kaydet butonuna basarsak kaydediyimmi diye sorar ve siz kaydet derseniz kaydeder hayır derseniz hepsini siler.
3- veri girişi yapıldı ama kaydet butonuna basılmadı çıkış butonuna bastığınızda girilen veriler silindi. ve boş kayıt oluşmadı.
Ah keşke form Çözülmüşlerin arasına taşınmasaydıda eki yolluyabilseydim size.
Sana bir tavsiye daha, butonları sırası ile kilitlersen daha iyi olur.
Misal ekleye bastın ekle butonu kilitlesin ki kaydete basmadan ekle butonuna bir daha basılıp boş kayıt atmasın.Sonra iptal butonuda koyman lazım ama bunları yapınca dediğim gibi kilitlemek lazım butonları. Düzenlenmiş şeklini göndermek isterdim lakin eklenmiyor.
Neyse artık olup olmadığı hakkında geri dönüş yaparsanız sevinirim. Kolay gelsin
Unutmadan kullandığınız office yazılımı nedir. Bu yazdıklarım office 2010 da işe yarar lakin 2003 ve 2007 de işe yaramayabilir.