Kayıt Var İse Otomatik Doldurma

1 2 3
30/09/2021, 13:10

userx

Sayın @alperadn01
Alttaki gibi Dlookup kullanarak bilgileri çekebilirsin. Girdiğiniz TC kayıtlı ise bilgileri gelir yoksa kaydetmeye devam edersin.
Private Sub adısoyadı_Enter()
If DCount("[tc no]", "dosyaarşiv", "[tc no]=[tcno]") > 0 Then

Cevap = MsgBox("Girdiğiniz TC daha önce girilmiş...Tekrar girmek istiyor musunuz?", vbYesNo)
If Cevap = 6 Then

DoCmd.SetWarnings True
Me.adısoyadı = Dlookup ("[adı soyadı]", "dosyaarşiv", "[tc no]=[tcno]")
Me.işebaşlama = Dlookup ("[işe başlama]", "dosyaarşiv", "[tc no]=[tcno]")
Me.iştenayrılış = Dlookup ("[işten ayrılış]", "dosyaarşiv", "[tc no]=[tcno]")
Me.sigortabaşlagıcı = Dlookup ("[sigorta başlagıcı]", "dosyaarşiv", "[tc no]=[tcno]")
Me.sigortabitişi = Dlookup ("[sigorta bitişi]", "dosyaarşiv", "[tc no]=[tcno]")
Me.Metin16 = Dlookup ("[şirket adı]", "dosyaarşiv", "[tc no]=[tcno]")
Me.Metin24 = Dlookup ("[kapanış tarihi]", "dosyaarşiv", "[tc no]=[tcno]")
DoCmd.SetWarnings True
Else
DoCmd.GoToControl "tcno"
Me.Undo
Exit Sub
End If
End If
End Sub

30/09/2021, 14:31

berduş

çalışmanızda şöyle bir sorun var
formunuz tabloya bağlı dolayısıyla siz her hangi bir kayıtta iken tcno metin kutusuna gireceğiniz değer aktif kaydın verisini değiştirir bu nedenle TCNO Ara gibi ayrı bir metin kutusu olması daha uygun olur varsa isterseniz yeni kayda gidip oraya ekler isterseniz o kaydı getirir yoksa doğrudan yeni kayda gidip TCNO oraya aktarılır
30/09/2021, 15:07

atoykan

Arşivleme için ayrıca bir tablo oluşturulması veritabanı yapısında hatalı bir tercih. Dosya tablosunda arşivleme için bir alan tanımlanıp aktif ve arşiv kayıtlarının buradan izlenmesi hem alan hem hız açısından fayda sağlar. Tek tablo üzerinden hazırlanacak formda tabloya değil sorguya bağlı kullanılır ise filtreleme seçeneği ile çok daha efektif olarak istenilen işlem yapılabilir. Çok detaya giremedim ama ekli dosyada bahsettiğim mantığa yakın bir çalışma var incelerseniz çalışmanızda size ışık tutabilir.
30/09/2021, 19:07

alperadn01

(30/09/2021, 15:07)atoykan yazdı: Arşivleme için ayrıca bir tablo oluşturulması veritabanı yapısında hatalı bir tercih. Dosya tablosunda arşivleme için bir alan tanımlanıp aktif ve arşiv kayıtlarının buradan izlenmesi hem alan hem hız açısından fayda sağlar. Tek tablo üzerinden hazırlanacak formda tabloya değil sorguya bağlı kullanılır ise filtreleme seçeneği ile çok daha efektif olarak istenilen işlem yapılabilir. Çok detaya giremedim ama ekli dosyada bahsettiğim mantığa yakın bir çalışma var incelerseniz çalışmanızda size ışık tutabilir.
cevap için teşekkürler. bu şekilde de çok işime yarayacak ancak şunu demeyi unutmuşum. bilgiler doldururken sigorta başlangıç tarihi,sigorta bitiş tarihi ve şirket adı bilgilerinin gelmemesi de gerekmekteydi. ancak bunu söylemeyi unutmuşum. bu şekilde uyarlayabilirseniz tam istediğim gibi olacak.teşekkürler tekrar
01/10/2021, 11:41

atoykan

Filtreleme seçeneği mevcut kaydınızı ekrana getirir. Sizin istediğiniz şekilde getirilmesi için @berduş Hocamın da belirttiği gibi arama için ilişkisiz bir textbox üzerinden ilgili tc sorgulanır ve gerekli bilgiler forma yükletilir. @ozanakkaya Hocamızın Access dersleri içinde konuya ilişkin çok sade bir anlatımı mevcut. Buradan inceleyebilirsiniz.
01/10/2021, 12:26

alperadn01

Dediğim şekilde sadece belirli bilgiler gelmiyorsa konu taşınabilşr. Verdiğiniz cevaplardan dolayı teşekkür ederim
1 2 3