(20/04/2020, 21:41)berduş yazdı: her girdiğiniz yeni kayıtta txtUretim metin kutusuna girdiğinizde çalışacak şekilde yaptım ama şöyle bir sorun var geçmişe yönelik bir değişiklik yaptığınızda ne olacak? o durumda sonraki kaydın txtUretim kutusuna da tekrar giriş yapmanız gerekecek
aşağıdaki kod Modüle eklenecek
Function BirAlt(Trh As Date) As Double
Dim AltRs As New ADODB.Recordset
Dim sOrGu As String
BirAlt = 0
sOrGu = "SELECT TOP 1 Tablo1.[TarihSaat], Tablo1.Sayac, * " & _
"FROM Tablo1 " & _
"WHERE (Tablo1.[TarihSaat]) < CDate('" & Format(Trh, "dd.mm.yyyy hh:nn") & "') " & _
"ORDER BY Tablo1.[TarihSaat] DESC"
AltRs.Open sOrGu, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If AltRs.RecordCount > 0 Then BirAlt = AltRs(1)
AltRs.Close
End Function
txtUretim metin kutusunun girildiğinde olayına da aşağıdaki kod eklenecek
Me.txtUretim = Me.txtSayac - BirAlt(CDate(Me.txtTarihSaat))
Cevabınız için teşekkür ederim. Aslında geçmişe dönük kayıtlarda herhangi bir değişiklik yapılmayacak. Bu hesaplama birdefaya mahsuz tüm kayıtlar için yapılacak sonrasında ise sadece son eklenen kayıt için hesaplama yapılarak farmoa (ve tabloya yazdırılacak)
Sizlerin sayesinde bakış açımı değiştirerek sanırım sorunu çözdüm. Teşekkür ediyorum.
Çözüm için aşağıdaki kodları kullandım;
Me.txtSonID = DMax("ScadaID ", "Tablo1")
Me.txtSondanBirOncekiID = Me.txtSonID - 1
Me.txtSonKayit = Dlookup ("Sayac", "Tablo1", "ScadaID = [txtSonID]")
Me.txtSondanBirOncekiKayit = Dlookup ("Sayac", "Tablo1", "ScadaID = [txtSondanBirOncekiID]")
DoCmd.RunCommand acCmdRecordsGoToLast
txtUretim = Me.txtSonKayit - Me.txtSondanBirOncekiKayit
dosyanın güncel halinide ekliyorum.
SayacFarkıHesaplama.rar
(Dosya Boyutu: 106,23 KB | İndirme Sayısı: 3)