Skip to main content

AccessTr.neT


Tablolar Arası İlişkilerde Yardım

Tablolar Arası İlişkilerde Yardım

Çözüldü #1
Merhaba Arkadaşlar,
Bakım uygulaması yapmak için uğraşıyorum ve bir noktada yardımınıza ihtiyacım var. Sorunum; "bakım kayıtları" tablosuna form ile kayıt ekliyorum ve "sonraki bakım" için aynı tabloda "bakım periyodu" kadar gün ekleyip hesaplatıyorum. Ayrıca makinelerin kayıtlı olduğu "makineler" tablosunda en son yapılan bakım tarihini de görmek istiyorum. Yani bakım kayıtlarında spesifik bir makine için yapılan tüm bakımlardan, en sonuncusunu (en yakın tarihlisini); "makineler" formundaki ilgili makine kaydının "en son bakım" alanında görmek istiyorum. Nasıl bir yol izlemeliyim?
Access dosyasını ekler kısmında belirttim. Yardımlarınızı rica ederim.
.rar bakım.rar (Dosya Boyutu: 77,63 KB | İndirme Sayısı: 8)
Cevapla
#2
forma ekleyeceğiniz bir metin kutusunun denetim kaynağına aşağıdaki kodu yazmayı dener misiniz
Kod
=DLast("[bakım tarihi]";"[bakım kayıtları]";" [makine id] =" & [makine_id])
makineleri tanımlayan alanın "makine_id" olduğunu varsayarak  söylüyorum "bakım kayıtları" tablosunda makine adı ve makine modeli alanlarına gerek var mı?
o alanlar zaten makine tablosundaki, makine_id alanına bağlı, yani bakım tablosundaki makine_id'ini biliyorsak zaten ad ve modeli de biliyoruz demektir
tabloyu boş yere şişirmiş oluyorsunuz
iyi çalışmalar
Cevapla
#3
Söylediğiniz çözümü uyguladım ve ekran görüntülerini eklerde belirttim. Yeni kayıtlarda #hata, önceki kayıtları seçtiğimde ise tamsayı değeri veriyor. Biçim 'i kısa tarih yapmayı denedim. Fakat saçma tarihler atıyor bu seferde. Ayrıca bakım kayıtları tablosunda makine adı ve modeline ihtiyacım var. Çünkü daha sonra bunlardan rapor oluşturmalıyım ve DLast fonksiyonu sanırım form üzerinde sadece görüntülemekte kullanılıyor. En son bakım tarihini, makineler formunda da kayıt ettirmeliyim. Bu şekilde bir çözüm önerebilir misiniz acaba?
.rar ScreenShots.rar (Dosya Boyutu: 230,96 KB | İndirme Sayısı: 3)
Cevapla
#4
[dlast] köşeli parantez içinde olmayacak aynen aşağıdaki gibi olacak

Visual Basic Code
=DLast("[bakım tarihi]";"[bakım kayıtları]";" [makine id] =" & [makine_id])

yeni kayıtta boş olmasını istiyorsanız aşağıdaki kodu deneyebilirsiniz
Kod
=IIf(Not [NewRecord];DLast("[bakım tarihi]";"[bakım kayıtları]";" [makine id] =" & [makine_id]);Null)
Cevapla
#5
En son yapılan bakım tarihini metin kutusuna getiriyor. Fakat "bakım kayıtları" tablosunda kayıtlı kalıyor. Ben bu en son bakım yapılan tarihi "makineler" tablosuna aktarıp kaydedemiyorum hocam.

Yeni kayıtta boş olması için denetim kutusuna 
=IIf(Not [NewRecord];DLast("[bakım tarihi]";"[bakım kayıtları]";" [makine id] =" & [makine_id]);Null)
yazdım. Bu sefer, makine id seçsem dahi boş kalıyor
Cevapla
#6
o zaman eski kodu kullanıp
Kod
=DLast("[bakım tarihi]";"[bakım kayıtları]";" [makine id] =" & [makine_id])
"makine_id" güncelleştirme olayına
Kod
metinkutusu.Requery
yapın
(03/10/2019 08:13)sipuasfaf Adlı Kullanıcıdan Alıntı: Ayrıca bakım kayıtları tablosunda makine adı ve modeline ihtiyacım var. Çünkü daha sonra bunlardan rapor oluşturmalıyım
aslında gerek yok çünkü rapor oluştururken zaten makine idini kullanarak bu alanları çağırabiliyoruz aynı şey son bakım tarihi için de geçerli, sorgular yada formda kullanacağımız ilişkiler aracılığıyla verileri görebiliriz
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da