form kayıtların otomatik tanım?

Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
arkadaşlar size bi sorum daha olacak yardımcı olursanızz sevinirim.

hazırladığım veri tabanı tablo ve formdan oluşuyor.

tabloya veri giriş formunda personeller hakkında bilgi var(isim soyisim kimlik no v.s..
yapmak istediğim
daha önce kaydetmiş olduğum personel bilgilerini tekrar kaydedeceğim zaman kayıt formuna personel ismini yazdığımda kimlik numarasını tablodan otomatik alsın eğer yeni personel girişi varsa onu normal elle gireyim. daha sonra yine aynı personelin ismini girersem kimlik numarası yine otomatik gelsin.
bu nasıl yapılabilir.
örnek veri tabanı göndereceğim ama aklınıza gelen bir yol varsa söylerseniz sevinirim
teşekkürler şimdiden.
 
Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
ekte dosyayı gösterdim
aynı isim tekrar girildiğinde diğer form girdileri otomatik tamamlansın?
olabilirmi?
nasıl?
yardımlarınız için şimdiden teşekkürler.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bu işin de bir raconu var. O da şu: Personerli bilgilerini bir tabloya kaydedeceksiniz, işlemleri de başka bir tabloya. Personel tablosundaki personeli form üzerinden çağırıp onunla ilgili işlem yapacaksınız. Yaptığınız bu işlem "işlemler" tablosuna kaydedilecek. Şaka bir yana gerçekten de bu işin raconu budur :)))

Yapmayı deneyin, personel tablosunda eğer personelleriniz olursa, diğer tabloyla personel numarası arasında bir ilişki kurup istediğiniz her yerden personel bilgilerini çağırabilirsiniz. Fakat burada garip bir durum var. Persoenl bilgileriniz Adı-Soyadı,Kimlik no, Doğum Tarihi, işe başlama tarihi.. Siz bu personeli bir kez kaydedince aynı tabloya bir daha neden çağırasınız ki? Aynı adamın bir başka versiyonu başka tarihte mi doğacak? Başka tarihte işe giren aynı adamdan bir tane daha mı var? Sanırım bu personeli bir kez çağırıp başka işlemler yapmak istiyorsunuz. Mantığını tam açıklarsanız yardımcı olurum.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Ad/Soyad alanının güncelleştirme sonrasına alttaki kodu yazınız..

Kod:
Private Sub Ad_Soyad_AfterUpdate()
Me.Kimlik_numarası = DLookup("[kimlik numarası]", "tablo1", "[Ad/Soyad]='" & Me.Ad_Soyad & "'")
Me.doğum_tarihi = DLookup("[doğum tarihi]", "tablo1", "[Ad/Soyad]='" & Me.Ad_Soyad & "'")
Me.işe_giriş_tarihi = DLookup("[işe giriş tarihi]", "tablo1", "[Ad/Soyad]='" & Me.Ad_Soyad & "'")
End Sub
 
Son düzenleme:
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Başka tablodan veri alırken de aynı dlookup'u kullanacağız ama ben hala be şekilde mükerrer kayıtların neden yapılmak istendiğini merak ediyorum.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
ehehe ben de anlamadım neden istendiğini ama bu durumda aynı verileri başka tabloya kaydetmenin de hiç bir manası yok ;)
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Elbette yok. Ama sanırım ilk dediğim gibi. bazı işlemler için herhalde bu tablo kullanılacak. Daha sonra sanıyorum bu tabloya bazı alanlar konulup işlemler eklenecek. Yani aynı veriler tekrar tekrar çağrılacak. Öyle görünüyor.
 
Son düzenleme:
Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
arkadaşlar veritabanını ekte gönderdim.
daha önce gönderdiğim açıklamamı anlatabilmem içindi...

ekte gönderdiğim dosya
bir şirketin giriş çıkş defteri
yapmak istediğimde:
bir kişi değişik zamanlarda binaya giriş çıkış yapabilir aynı gün içinde
işte ben bu kişiyi ilk kaydettiten sonra tekar tekrar kimlik no v.s. girmek istemiyorum
daha önce kaydettiğim kişinin ikinci sefer gelişinde isim girdiğimde isim soyisim yazdığımda kimlik no önceki kayıttan çağırsın kart no aynı şekilde giriş çıkış zamnlarda her zaman manuel girilecek
yapmak istediğim bu.
yardımlarınız için teşekkürler.
yukardaki kodu denicem
ekte göndereceğim dosya üzerinde yardımcı olursanız sevinirim.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın energy34,

Mantık hatası yapıyorsunuz ondan karıştı iş.

İki tablo hazırlayın birinde kişi bilgileri olsun, ikincisinde ise giriş çıkış tarihi ve kişi no (Kimlik) bulunsun. İki tabloyu ilişkilendirin (Kimlik - KişiNo) Yani her giriş çıkışta tüm bilgileri kaydetmek hem veri tabanına yük hem de daha sonra hata oluşturabilir. Tabi ki form üzerinde kişi bilgilerini DLookUp fonksiyonu ile gösterebilirsiniz. (Kaydetmezsiniz)

İyi çalışmalar
 
Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
modalı hocam
dlookup fonsiyonunu daha önce kullanmadım
ama kişi adından sonra otomatik alınan bilgiyi veri tabanına kaydetmem geekiyor çünkü gün sonlarında çıktı alacam
yani kaydetmezsiniz dedinde benmi yanlış anladım onu DLookUp komutu ile o anda kaydı yapılan kişinin kişi bilgilerini gösterir kaydetmezmi?
sorunumu anlatabildim umarım
yanlışmı düşünüyorum yoksa?

birde ayrı tablo oluşturmak yerine tek tablodan yani kayıt tablomuzdan aldıramazmıyız bunu?

yada forma girilen kaydı iki ayrı tabloya aynı anda kaydedebilirmiyiz?
yani biri kayıt tablomuz diğeri ilişkilendireceğimiz tablo olsa?
 
Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
beab05 senin söylediğin gibi güncelleştirme sonrsına o verdiğin kodla istediğim oldu teşekkür ederim
modalı hocam bu uygulamanın yani DLoopUp komutunu yukarda beab05 in verdiği gibi kullansam sorunla karşılaşırmıyım
şimdilik öyle kullanacamda.

cidden siteyi hazırlayanlara ve bu siteden benim gibi acemilere destek veren arkadaşlardan Allah razı olsun.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın energy34,

Çıktı almak konusu başka tabloya kaydetmek başka. Siz sanırım hala Excel in etkisi altındasınız. Ne görüyorsam onu alırım. Ama Access de durum farklı. Her giriş çıkış kaydında kişi no (kimlik) kaydetmekle tüm diğer bilgilere ulaşabilme imkanınız var. Bir sorgu hazırlarsınız orada tüm bilgileri gösterebilirsiniz. Bu sorguya dayanan bir raporla da istediğiniz her türlü bilgiyi görebilir ve çıktısını alabilirsiniz. Ama bu arada da veritabanınız şişmez. Siz 8 bytlık bir alanla tüm bilgilere ulaşabilirsiniz. Tüm bilgileri kaydetmekle ad soyad 255 byte, kimlik numarası 255 byte, kimlik no 255 byt.e 715-8=707 byte her kayıtta tasarufunuz var. Kişi üç kere girip çıkarsa 2100 byte 100 kişi çalışıyorsa 210000 byte bir yılda yaklaşık 63000000 byte tasarufunuz olacak.

Veri tabanı tasarlarken tüm bu konuları göz önüne almanız gerekir.

İyi çalışmalar
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın energy34.. İlk mesajımı tekrar okumanızı öneriyorum. Şakacı bir tavırla yazdığım için sanırım kimse ciddiye almıyor ama ilk söylediklerimle modalı'nın son söyledikleri aynı şeyler aslında. Bir tablo yapacaksınız, adı kişiler olacak. İçinde kayıtno- kimlikno - adı soyadı olacak. Kayıt no otomatik sayı olur. Diğer bir tablo yapacaksınız onda da kayıtno- kartno- giriş ve çıkış tarihleri olur. (Kayıt no yine otomatik) Bu tablonun adı da işlemler tablosu olsun.Tabiiki bu tablo ile diğer tabloyu birbirine ilişkilendirmek için bir de kimlikno alanı olmalı. Kişiler tablosundaki bir kişi ile ilgili bilgi bağlantısı için işlemler alanındaki kimlikno bilgisi kullanılacak. Form üzerinde veya sorgularda ortak kriter olarak bu alan kullanılacak. Yani tekrar tekrar kimlik bilgileri kaydedilmeyecek. Tıpkı arşivlerdeki dosyalama-index mantığı gibi düşünün. Bir dosyalama sisteminde dosyanın içindeki herşeyi kütük defterine yazmak mı, yoksa sadece dosya numarasını yazmak mı mantıkleder? Tabii ki dosya numarasını yazmak daha ekonomiktir. Böylece o dosyaya ulaşır ve içindeki bilgileri kullanırız. Access'in mantığı da böyledir. Excel gibi herşeyi bir tablo üzerinde yazayım diye düşünmeyin. Tekrarlanacak bilgileri referans olarak kullanın, tekrar tekrar kaydetmeyin. Artık profesyonel bir veritabanı mantığıyla düşünün.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bu arada dlookup ile ilgili bilgi vermeyi unuttum. (Bu konuda bilgisinden sıklıkla yararlandığım ve bu forumdaki ilk soru konum olan dlookup komutunu bana öğreten sayın modalı'ya binlerce teşekkür)

firmaadı = DLookup("[İsim]", "[carikart]", "[carikod]='" & Me.Metin14 & "'")


diyelim form üzerindeki firmaadı alanına veri getirmemiz lazım. firmaadı= ifadesi bunu anlatır. Devam edelim. Dlookup komutundan sonra [isim] ifadesi firmaadı alanına getirilecek bilgnin kendisidir. Alınacağı tablo adı ise hemen ardında yer alıyor. Yani Carikart....Peki bu bilgi neye göre getirilecek? İşte şimdi onlar geliyor. Aktif form üzerinde yer alan Metin14 adlı metin kutusundaki veriye bakılacak ve adı geçen tablodaki (yani carikart tablosundaki) carikod sütununda bulunan veri gelecek. Bu veri işte en başta belirtilen carikart tablosundaki isim bilgisidir. Bu komutun yazıldığı eylemden sonra bu istenen bilgi, verilen şartlara göre çağırılır ve form üzerindeki firmeadı alanına aktarılır.

eee. O zaman verileri tekrar başka bir tabloya kaydetmeye gerek var mı?. Siz bir mp3 dosyasını rahat dinleyeyim diye bir kez de masaüstüne kaydedenlerden misiniz? Biz size bu mp3 dosyasının kısayolunu masaüstüne atın diyoruz. Tekrar kaydetmeye gerek yok.

Bunun (dlookup'un) kullanımı ile ilgili size kendi hazırladığım bir örneği ekliyorum. Form üzerinde daha açıklayıcı anlatımlar var.

Kolay gelsin
 
Katılım
22 Temmuz 2008
Mesajlar
41
Excel Vers. ve Dili
excell 2007 türkçe
mehmet demiral hocam çok teşekkürler
dlookup komutuyla artık bi sıkıntım kalmadı
Allah razı olsn
ha msj.ı yazarken aklıma geldi
accesste kullanılan kumutlar ve açıklamaları gibi bir doküman varmı?
örneğin
dlookup = herhangi bir tablonun istenilen alanından veri çağırır.
v.s.
gerçi forumda detaylı arama yapmadım ama (kızmayın bu yüzden)
gözümede çarpmadı

birde kişiler için tablo oluşturun dedimiştiniz.
kişi bilgileri için farklı tablo oluşturun(giriş çıkış v.s.) bunları ilişkilendirin dediniz.
söyledikleriniz standart kişiler belli olsa öyle yapacam ama ben bunu
bina ziyaretçi defteri olarakta kullanacam yani bir ziyaretçi 1 günde atıyorum 10 kez giriş çıkış yapabilir ama diğer günlerde hiç gelmeyebilir.
bu durumda o kişi için ilişkili tabloya ekleme olayı baya zahmetli olacak
yada ertesi gün farklı bir kişi 3-4 kez giriş çıkış yapar sonra hiç gelmez v.s.
yapmak istediğim gelen bir kişinin o gün içinde 10 kez gelmişse sadece birinde kimlik numarası v.s. bilgilerini almak diğer girişlerinde o bilgileri tekrar girmemek.

düşüncemde bir hata varmı?
varsa veya şöyle daha uygun derseniz onu deneyeyim

yardımlarınız için teşekkür ederim.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Ok. Sevgili beab05'in size dlookup ile hazırladığı kodlar işinizi gayet güzel görür. Eğer dediğiniz gibi bir işlemse, tckimlik numarası üzerinden kullanıcıları çağırabilirsiniz. Sakın isme bağlamayın, benzer isimler olursa sorun yaşarsınız. En güzeli tckimlik yazıldıktan sonra dlookup ile veriyi buldurmak. Dediğiniz durumda bana sorarsanız mantığınız doğru. Birkez giriş yapacak bir ziyaretçi için ayrı tabloya kayıt yapmak çok anlamlı değil. Kolay gelsin.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bu arada sorunuzu da yanıtlayayım. Bahsedilen komutlar aslında visual basic kitaplarında yer alır. Access kitaplarında bulamazsınız. Visual basic kitaplarını incelerseniz dlookup, if....then, vlookup, sum, mid, right,dim vs gibi yüzlerce komutun vba'da da (Yani access ve excel'in kodlama arayüzü diyelim) kullanılabildiğini görebilirsiniz.
 
Üst