İyi Günler Herkese;
Ekte göndermiş olduğum dosyada proforma adlı formda kaydet butonuna bastığım zaman yeni kayıt eklesin fakat bazı verilerin ekranda kalmasını yani silinmemesini istiyorum. Bir sonraki kayıtta yeniden yazmamak için;
Ekranda Silinecek veriler:Ürün Adı,Ürün Barkod,Marka,Birim,Miktar,Birim fiyat,toplam,kdv ve genel toplam'dır.
Konu ile ilgili örnek baktım fakat bulamadım. Yardımcı olabilirseniz sevinirim.
İlginize şimdiden teşekkür ederim.
Kaydet Butonu ile veri kaydı
Sn.silka,
Kaydet butonunuzun tıklama olayına aşağıdaki kodu yazıp denermisiniz..
Olumlu-olumsuz geri bildirimde bulunun lütfen.
Kaydet butonunuzun tıklama olayına aşağıdaki kodu yazıp denermisiniz..
Olumlu-olumsuz geri bildirimde bulunun lütfen.
Private Sub Komut92_Click()
On Error GoTo Err_Komut92_Click
If IsNull(Me.FIRMAADI) Then MsgBox "LUtfen Firma Adini Yaziniz!", 48, "Kayit ISlemi": Me.FIRMAADI.SetFocus: Exit Sub
If IsNull(Me.ADRES) Then MsgBox "LUtfen Firmanin Adresini Yaziniz!", 48, "Kayit ISlemi": Me.ADRES.SetFocus: Exit Sub
If IsNull(Me.TEL) Then MsgBox "LUtfen Irtibat Numarasini Yaziniz!", 48, "Kayit ISlemi": Me.TEL.SetFocus: Exit Sub
If IsNull(Me.PROFORMANO) Then MsgBox "LUtfen Proforma Numarasini Yaziniz!", 48, "Kayit ISlemi": Me.PROFORMANO.SetFocus: Exit Sub
If IsNull(Me.PROFORMATARIHI) Then MsgBox "LUtfen Proforma Tarihini Yaziniz!", 48, "Kayit ISlemi": Me.PROFORMATARIHI.SetFocus: Exit Sub
If IsNull(Me.RAPOR) Then MsgBox "LUtfen ISlem Yapan KiSiyi Yaziniz!", 48, "Kayit ISlemi": Me.RAPOR.SetFocus: Exit Sub
If IsNull(Me.URUNADI) Then MsgBox "LUtfen UrUnUn Adini Yaziniz!", 48, "Kayit ISlemi": Me.URUNADI.SetFocus: Exit Sub
If IsNull(Me.BARKODNO) Then MsgBox "LUtfen Barkod Numarasini Yaziniz!", 48, "Kayit ISlemi": Me.BARKODNO.SetFocus: Exit Sub
If IsNull(Me.MARKA) Then MsgBox "LUtfen UrUnUn Markasini Yaziniz!", 48, "Kayit ISlemi": Me.MARKA.SetFocus: Exit Sub
If IsNull(Me.BIRIM) Then MsgBox "LUtfen UrUnUn Birimini Yaziniz!", 48, "Kayit ISlemi": Me.BIRIM.SetFocus: Exit Sub
If IsNull(Me.BIRIMFIYAT) Then MsgBox "LUtfen UrUnUn Birim Fiyatini Yaziniz!", 48, "Kayit ISlemi": Me.BIRIMFIYAT.SetFocus: Exit Sub
If IsNull(Me.KDV) Then MsgBox "LUtfen Kdv Oranini Yaziniz!", 48, "Kayit ISlemi": Me.KDV.SetFocus: Exit Sub
If IsNull(Me.TESLIMAT) Then MsgBox "LUtfen Teslimat Seklini Yaziniz!", 48, "Kayit ISlemi": Me.TESLIMAT.SetFocus: Exit Sub
If IsNull(Me.ODEMESEKLI) Then MsgBox "LUtfen Odeme Seklini Yaziniz!", 48, "Kayit ISlemi": Me.ODEMESEKLI.SetFocus: Exit Sub
If IsNull(Me.GECERLILIKSURESI) Then MsgBox "LUtfen Belgenin GeCerlilik SUresini Yaziniz!", 48, "Kayit ISlemi": Me.GECERLILIKSURESI.SetFocus: Exit Sub
If IsNull(Me.NAKLIYE) Then MsgBox "LUtfen Nakliye TUrUnU Yaziniz!", 48, "Kayit ISlemi": Me.NAKLIYE.SetFocus: Exit Sub
If IsNull(Me.IHALE) Then MsgBox "LUtfen Ihale ICin Olup/Olmadiğini Yaziniz!", 48, "Kayit ISlemi": Me.NAKLIYE.SetFocus: Exit Sub
DoCmd.GoToRecord , , acNewRec
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindLast "[URUNADI] = '" & Me![URUNADI] & "'"
If Not rs.EOF Then Me.URUNADI = rs.URUNADI
If Not rs.EOF Then Me.MARKA = rs.MARKA
If Not rs.EOF Then Me.MARKA = rs.MARKA
If Not rs.EOF Then Me.BIRIM = rs.BIRIM
If Not rs.EOF Then Me.MIKTAR = rs.MIKTAR
If Not rs.EOF Then Me.BIRIMFIYAT = rs.BIRIMFIYAT
If Not rs.EOF Then Me.KDV = rs.KDV
If Not rs.EOF Then Me.BARKODNO = rs.BARKODNO
If Not rs.EOF Then Me.TOPLAM = rs.TOPLAM
If Not rs.EOF Then Me.GENELTOPLAM = rs.GENELTOPLAM
Exit_Komut92_Click:
Exit Sub
Err_Komut92_Click:
MsgBox Err.Description
Resume Exit_Komut92_Click
End Sub
teşekkür ederim ellerinize sağlık,, fakat altta yazan marka vs. kısımların silinmesini diğer verilerin silinmemesini istiyordum. ben üzerinde biraz uğraşiym çözebilirim herhalde. çözemezsem size dönüş yaparım.
tekrar teşekkürler
tekrar teşekkürler
Evet şimdi farkettim. Sizin söylediğinizin tam tersini yapmışım.
Ama mantığı kapmış olmalısınız. Kodun aşağıdaki kısmını deneme yanılma yöntemi ile geliştirebilirsiniz.. Kolay gelsin.
Ama mantığı kapmış olmalısınız. Kodun aşağıdaki kısmını deneme yanılma yöntemi ile geliştirebilirsiniz.. Kolay gelsin.
DoCmd.GoToRecord , , acNewRec
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindLast "[URUNADI] = '" & Me![URUNADI] & "'"
If Not rs.EOF Then Me.URUNADI = rs.URUNADI
Sayın silka,
Konunuzdaki talebinize dair formunuzda mevcut bulunan bir ayrıntı üzerinden cevap vermek yerinde olacaktır.
proforma isimli formunuzda kaydet butonu üzerinden yapmayı düşündüğünüz işlem için,yeni kayıt açmaya dair kullanmak üzere oluşturduğunuz ekle isimli buton bu yeni kayıt açma işlemine yönelik talebinizi yerine getirmek üzere bulunmakta zaten hali hazırda.bu sebeple,kaydet butonu üzerinden ikinci bir harici kodlamaya gerek olmayacaktır.bunun yerine,kaydet butonundaki kodlama yine aynı şekilde kaydetme için kalmasının ve akabinde de ekle isimli buton içeriğinde bu talebinizin yerine getirilmesi daha uygun olacaktır;gerek kod yazma fazlalığından dolayı gerekse de gereksiz kodlamalarla uygulamanın performansını yormamak için.
Formunuz üzerinde değer ataması yapılan (tarih ve saat haricinde) 23 adet denetim mevcut.ve bu denetimler içerisinden de 9 adedinin değerlerinin yeni bir kayıt sonrasında değer olmaksızın açılmasını talep ediyorsunuz.fakat değerlerinin her yeni bir kayıt açıldığında kalmasını istediğiniz denetimlere bakıldığında sürekli aynı bilgilerin girilebileceği türden değerler yerine değişkenlik gösteren değerler içerdiği görülmektedir.bu da,bu talebiniz için pek de bir geçerlilik,anlam veya bir kolaylaştırıcılık sağlayabileceği yönünde tereddütler içerdiği düşüncesine yol açmaktadır.fakat yine de,talebinize dair çözüm için de iki yöntem uygulanabilirlik safhasındadır.
Yöntem-1:
Form üzerinde yer alan denetimlerde yeni bir kayıt açılmasından sonra hangi denetim üzerinde hangi değerin görünmesini istiyorsanız bunu,ilgili formun tablosunun tasarım sayfasında,ilgili alanların Varsayılan Değer isimli satırına,yeni bir kayıt açıldığında akabinde o denetim üzerinde görünmesini istediğiniz değeri yazmanız yeterli olacaktır.
Yöntem-2:
Ekle butonunun tıklandığında olay yordamı içerisine,yeni kayıt eklemek üzere yazılı bulunan
DoCmd.GoToRecord , , acNewRec
Satırının sonrasında;birinci yöntemde belirtildiği üzere benzer bir gidişat ile,hangi denetimde hangi değerlerin görünmesini istiyorsanız yeni bir kayıt sonrasında,o denetimlere o değerleri atamak yolu ile de bir diğer çözümü uygulamış olursunuz.
son olarak da,lütfen hem bu hem de daha sonrasındaki geliştireceğiniz uygulamalarınızda alan isimlerinin belirtilmesinde türkçe karakter kullanmamaya ve iki ifadeli durumlarda aralarına (_) alt tire işareti ekleyerek kullanmaya özen gösteriniz.yardımcı olunmak istenen kodlamalarda da görülüyor ki türkçe karakterlerden dolayı hatalar vermesi muhtemeldir.bilgilerinize.
iyi çalışmalar,
saygılar.
Konunuzdaki talebinize dair formunuzda mevcut bulunan bir ayrıntı üzerinden cevap vermek yerinde olacaktır.
proforma isimli formunuzda kaydet butonu üzerinden yapmayı düşündüğünüz işlem için,yeni kayıt açmaya dair kullanmak üzere oluşturduğunuz ekle isimli buton bu yeni kayıt açma işlemine yönelik talebinizi yerine getirmek üzere bulunmakta zaten hali hazırda.bu sebeple,kaydet butonu üzerinden ikinci bir harici kodlamaya gerek olmayacaktır.bunun yerine,kaydet butonundaki kodlama yine aynı şekilde kaydetme için kalmasının ve akabinde de ekle isimli buton içeriğinde bu talebinizin yerine getirilmesi daha uygun olacaktır;gerek kod yazma fazlalığından dolayı gerekse de gereksiz kodlamalarla uygulamanın performansını yormamak için.
Formunuz üzerinde değer ataması yapılan (tarih ve saat haricinde) 23 adet denetim mevcut.ve bu denetimler içerisinden de 9 adedinin değerlerinin yeni bir kayıt sonrasında değer olmaksızın açılmasını talep ediyorsunuz.fakat değerlerinin her yeni bir kayıt açıldığında kalmasını istediğiniz denetimlere bakıldığında sürekli aynı bilgilerin girilebileceği türden değerler yerine değişkenlik gösteren değerler içerdiği görülmektedir.bu da,bu talebiniz için pek de bir geçerlilik,anlam veya bir kolaylaştırıcılık sağlayabileceği yönünde tereddütler içerdiği düşüncesine yol açmaktadır.fakat yine de,talebinize dair çözüm için de iki yöntem uygulanabilirlik safhasındadır.
Yöntem-1:
Form üzerinde yer alan denetimlerde yeni bir kayıt açılmasından sonra hangi denetim üzerinde hangi değerin görünmesini istiyorsanız bunu,ilgili formun tablosunun tasarım sayfasında,ilgili alanların Varsayılan Değer isimli satırına,yeni bir kayıt açıldığında akabinde o denetim üzerinde görünmesini istediğiniz değeri yazmanız yeterli olacaktır.
Yöntem-2:
Ekle butonunun tıklandığında olay yordamı içerisine,yeni kayıt eklemek üzere yazılı bulunan
DoCmd.GoToRecord , , acNewRec
Satırının sonrasında;birinci yöntemde belirtildiği üzere benzer bir gidişat ile,hangi denetimde hangi değerlerin görünmesini istiyorsanız yeni bir kayıt sonrasında,o denetimlere o değerleri atamak yolu ile de bir diğer çözümü uygulamış olursunuz.
son olarak da,lütfen hem bu hem de daha sonrasındaki geliştireceğiniz uygulamalarınızda alan isimlerinin belirtilmesinde türkçe karakter kullanmamaya ve iki ifadeli durumlarda aralarına (_) alt tire işareti ekleyerek kullanmaya özen gösteriniz.yardımcı olunmak istenen kodlamalarda da görülüyor ki türkçe karakterlerden dolayı hatalar vermesi muhtemeldir.bilgilerinize.
iyi çalışmalar,
saygılar.
konudaki örnekte SCavusoglu'nun kodlarına göre yaptım sorun çözüldü fakat şimdi de, formu açar açmaz hemen tabloda kayıt açıyor. Yanlışlıkla formu açsam bile boş bir veri satırı oluşturuyor.
Acaba sadece kaydet tuşuna bastıktan sonra verileri kayıt etse olmaz mı?
Acaba sadece kaydet tuşuna bastıktan sonra verileri kayıt etse olmaz mı?
Konuyu Okuyanlar: 1 Ziyaretçi