otomatik kayıt yapmak? - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: otomatik kayıt yapmak? (/konu-otomatik-kayit-yapmak.html) Sayfalar:
1
2
|
otomatik kayıt yapmak? - gocebe - 16/07/2009 selamlar. öncelikle okuyanların anlaması zor olacak belki, şimdiden kafa karışıklığı için özür dilerim. neyse soruma gelince, çalıştığım yerde gelirler ve giderlerin tutulması amacıyla bir db yapmaya soyundum. herşey gayet iyi gidiyordu ancak kullanacak kişi madem yaptın tam olsun çalışan personelin her ayın 01,15 ve 20 olmak üzere üç periyotta maaş aldığı bir durumda bu bilgilerin otomatik olarak her ay db eklenmesini istedi. giderlerin bir kalemide çalışanlar ve onların maaşlarıdır bilirsiniz. benim derdimde burada başladı. tablo yapısı biraz karışık gibi duruyor onun için neler olduğunu açıklayarak devam ediyorum. tbl_gelir_gider : gelir ve giderlerin tutulduğu tablo tbl_gider_personel : giderin hangi personelden dolayı yapıldığını tutatn giderler ve personel ile baglantılı detay gider tablosu. tbl_gelir_gider_baslik : gelir ve gider başlıkları tablosu. tbl_gelir_gider_baslik_detay : gelir gider başlığına bağlı alt başlıklar ve datayları. tbl_personel_ana : personel bilgileri. tbl_personel_gorev : personelin görevlerinin tutulduğu tablo. özetle problemim her program açıldığında çağıracağım "frm_personel_maas_oto" formunun çalışmaya başlaması ile bulunulan ayın kontrolünü yaparak gider tablosuna personelin 01, 15 veya 20 günlerinde maaş kayıtlarını görev tanımlarına göre otomatik olarak "tbl_gelir_gider" tablosuna ve hangi personelden dolayı yapıldığı bilgisinide "tbl_gider_personel" tablosuna eklemek. doğal olarak ilk düşüncem aktif personelin enson kayıt yapılan maaş kaydını tabloda bir alanda tutmak ve bunu karşılaştırmada kullanmak oldu. ancak bunu yazmak ile programa yaptırmak çok farklı işler. velhasıl bunca kelamın ardından bir fikir, bir yol, bir örnek ile bana zor gibi görünen bu işin üstesinden nasıl gelebiliriz? örnek db ekte bulabilirsiniz. ilgilenen herkeze şimdiden teşekkür ederim. Cvp: otomatik kayıt yapmak? - esrefigit - 16/07/2009 benim eklediğim ekders programını incele orda ayı seçiyorsun ve ayın günlerine göre kişilerin ekderslerini otomotik dolduran bir uygulama var Cvp: otomatik kayıt yapmak? - Aykay - 16/07/2009 Sayın gocebe; Benimde üzerinde çalıştığım ve düşündüğüm bir konu. Düşüncemi gerçekleştirmek için her gün şeklini şemalini değiştiriyorum. Ama benim düşüncem manuel (buton) toplu kayıt. Manuel olsun yeter ki çalışır seviyeye getireyim. Sonuçta tek tek girmekten iyidir. Düşünsenize bir sürü kayıt. Siz de projenizin bu bölümünü çalıştırır seviyeye getirdiğinizde burada paylaşırsanız faydalı olacağının kanaatindeyim. Teşekkürler. Cvp: otomatik kayıt yapmak? - esrefigit - 17/07/2009 sayın göçebe soruyu okuyunca bu soruyu gerçekten senin sorup sormadığını merak ettim senin yaptığın örneklere bakınca böylesine basit bir soruyu nasıl sorabiliyorsun hayret ettim yada sen bizim bildiğimiz göçebe değğilsin neyse sorunun cevabına gelince kaç tabloya kayıt yapacaksan okadar ado nesnesi açarsın ben şimdilik ik adet ile örnek veriyorum biriyle tbl_personel_ana tablosunu dolancağız diğeri ile tbl_gelir_gider tablosuna kayıt yapacağız şimdi bensana kodun hepsini detaylı anlatacağım Private Sub Etiket43_Click() burda personel tablosundaki maaş zamanı ile içinde bulunduğumuz ayın ayı ve yılını birleştimek için bir taih alanı yarattık Dim maastarihi As Date burda rs diye bir ado nesnesi yarattık Dim rs As New ADODB.Recordset burda ise rs adlı ado nesnesinin personel tablosunu açmasını istedik rs.Open "tbl_personel_ana", CurrentProject.Connection, adOpenKeyset, adLockOptimistic burdada rs1 diye bir alan yarattık Dim rs1 As New ADODB.Recordset burda ise rs1 adlı nesnenin gelir gider tablosunu açmasını istedik rs1.Open "tbl_gelir_gider", CurrentProject.Connection, adOpenKeyset, adLockOptimistic not =her iki tabloyuda aynı anda açtıkki birini dolanarak personeli alacağız ve her personel aldığımızda personele ait bilgileri açtığımız gider tablosuna kaydedeceğiz siz isterseniz aynı anda 10 tane tablo birden açıp hepsine birden her persoenlde personeli ekleye bilirsiniz dim rs ve rs.open kısmını kopyalamak sureti ile işte burda personel tablosunu yukardan aşağı doğru gezmeye başlıyor kod If rs.EOF <> True Then Do burda yukarda yarattığımız tarih alanına personel tablosundaki maas zamanını ve bu günün ayını ve yılını ekleyerek birleştirip bir tarih üretiyor maastarihi = rs("maas_zamani") & "/" & Month(Date) & "/" & Year(Date) işte burda açmış olduğumuz rs1 yani gider tablosuna her personelde ekleme yapıyoruz rs1.AddNew rs1("tarih") = maastarihi rs1("tutar") = rs("maas") rs1("baslik_bag") = rs("gorev_bag") rs1("islem") = "BANKA" rs1.Update burda ise bir sonraki persoenl bir sonraki personel diye devam ettriyoruz rs.MoveNext Loop Until rs.EOF End If burda ise açmış olduğumuz tabloları yani bağlatıları kağatıyoruz yoksa bir başka yerde kullanmaya çalışsak bu tablo zaten açık olduğu için problem yaratacaktır rs.Close Set rs = Nothing rs1.Close Set rs1 = Nothing End Sub buda kodun temiz hali Kod:
Private Sub Etiket43_Click() Cvp: otomatik kayıt yapmak? - gocebe - 17/07/2009 aslını isterseniz sorgular ile olan kayıtları almak eklenecekleri eklemek kolay işi biraz karıştıran görev tanımlarına göre gideri seçerek yaptırmakta. db incelerseniz 01 de birden fazla görev tanımlı kişi maaş alıyor, 15 ve 20 aynı şekilde farklı görev tanımlı kişiler maaş alıyor, bu görev tanımı işin içinde olunca biraz gözüm korktu açıkçası. Cvp: otomatik kayıt yapmak? - esrefigit - 17/07/2009 o önemli değil zaten sen personel ana tablosunda personelin görevini belirtmemişmisin bundan gari extra bir isteğin varsa ben anlamışsım eğer daha açıklayıcı olursan daha iyi olur |