Son Kayıt Değerini Bir Öncekinden Çıktarak Forma Yazdırma (Vba İle)

1 2 3 4 5
20/04/2020, 13:23

toprak_tan

Herkese hayırlı haftalar,

Otomasyon sisteminden saatlik kümülatif sayaç verilerini çeken Tablo1 isminde bir tablom var. Tablo1’ de yer alan “Sayac” alanına her yeni kayıt eklendiğinde, eklenen son kayıt değerini bir öncekinden çıkartarak Form1’de yer alan son kayıttaki “Üretim” sütununa hesaplatarak yazdırmak istiyorum. Fakat bu işlemi sorgu (SQL) ile değil Vba ile yapmam gerekiyor.





Yapmak istediğim;



Bu konuda bana yardımlarınıza ihtiyacım var, şimdiden teşekkür ederim.
20/04/2020, 14:02

accessman

dlookup ile bir öncekini çekebiliyorsanız gerisi 4 işleme kalmış demektir
30 dan çıkaracağınız 10 rakamının id değeri var mı
yoksa tek kriteriniz sondan bir öncekisi olması mı
eğer her satırın bir id değeri varsa o id değerine göre Dlookup ile eski değeri getirip yenisinden çıkarıp istediğiniz yere yazdırırsınız
eğer id numarası otomatik ise ve hiç kesintisiz bir önceki kaydın id si
bir sonrakinden bir eksik ise problem yok
eğer id ler birbirini düzenli takip etmiyor ise hangi kritere göre bir öncekini bulacaksınız
eğer kaydı oluştururken o anda bu işlemi yapacaksanız Dlast Dmax kullanabilirsiniz
20/04/2020, 14:15

toprak_tan

(20/04/2020, 14:02)accessman yazdı: dlookup ile bir öncekini çekebiliyorsanız gerisi 4 işleme kalmış demektir
30 dan çıkaracağınız 10 rakamının id değeri var mı
yoksa tek kriteriniz sondan bir öncekisi olması mı
eğer her satırın bir id değeri varsa o id değerine göre Dlookup ile eski değeri getirip yenisinden çıkarıp istediğiniz yere yazdırırsınız
eğer id numarası otomatik ise ve hiç kesintisiz bir önceki kaydın id si
bir sonrakinden bir eksik ise problem yok
eğer id ler birbirini düzenli takip etmiyor ise hangi kritere göre bir öncekini bulacaksınız
eğer kaydı oluştururken  o anda bu işlemi yapacaksanız Dlast Dmax kullanabilirsiniz

Yanıtınız için teşekkürler,

Tablodaki TarihSaat alanı birincil anahtar (aynı tarih ve saat için yalnızca tek bir veri girilebilmesi için).  Yani her satırın ID değeri tarihsaat alanıdır ve sürekli olarak bir saatte bir veri çekmektedir. Dmax ve Dmin komutu ile ilk ve son kayıtlar arasında işlem yaptırabildim, son ve birönceki kayıtla işlem yaptıramadım. Amacım yazılacak bir kod ile bunu sadece son kayıt çekildiğinde hesaplatmak ve forma yazdırmak.
20/04/2020, 14:22

accessman

eğer saatler birbirini düzenli takip ediyorsa
"Hour (#19/04/2020 22:00:00#)" - 1
gibi bir formulde kullanabilirsiniz
tabiki bu anlattıklarım Dlookup için kriter olarak kullanılacak yani
dlookup("alanadı","tabloadı","where=" & Format(tarih, "\#19\/04\/2020 22\:00\:00\#")
gibi bir şeyler olması lazım

Kod:
"Hour (#19/04/2020 22:00:00#)" - 1
bir saat öncesi böyle olsa gerek
20/04/2020, 14:29

accessman

Kod:
DATEADD(hour,-1,zaman)
kodu ile de bir saat öncesine gidebilirsin

ama bu kadar uğraşmak yerine bir otomatik id koyun
tarih alanını özelliklerden benzersiz yapın daha kolay olur
bir önceki id e gidip ilgili alandan değeri alırsınız
üstelik aynı tarih ve saatten sadece bir tane olur

yineleme yok seçin

20/04/2020, 15:27

berduş

Iç içe 2 sorguyla olabilir, 2. sorgu icin max(tarih) where tarih < kaydın tarihi gibi bir sorgu aktif kayittan onceki en büyük tarihli kaydın değerlerini getirebilir. Ama ancak fonksiyonla olur gibi geliyor bana
1 2 3 4 5