Skip to main content

#EvdeKal


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

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

Çözüldü #1
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.

[Resim: do.php?img=10077]

[Resim: do.php?img=10078]

Yapmak istediğim;

[Resim: do.php?img=10080]

Bu konuda bana yardımlarınıza ihtiyacım var, şimdiden teşekkür ederim.
.rar SayacFarkıHesaplama.rar (Dosya Boyutu: 50,02 KB | İndirme Sayısı: 9)
Son Düzenleme: 20/04/2020, 13:27, Düzenleyen: toprak_tan.
Cevapla
#2
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
@benbendedeilem (https://www.excelsizeyeter.com/excelsize...krolar.php)
Cevapla
#3
(20/04/2020 14:02)accessman Adlı Kullanıcıdan Alıntı: 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.
Son Düzenleme: 20/04/2020, 14:17, Düzenleyen: toprak_tan.
Cevapla
#4
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

@benbendedeilem (https://www.excelsizeyeter.com/excelsize...krolar.php)
Son Düzenleme: 20/04/2020, 14:25, Düzenleyen: accessman.
Cevapla
#5

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
[Resim: do.php?img=10081]
@benbendedeilem (https://www.excelsizeyeter.com/excelsize...krolar.php)
Son Düzenleme: 20/04/2020, 14:39, Düzenleyen: accessman.
Cevapla
#6
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
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task