17/12/2023, 21:35
6246386
(17/12/2023, 18:05)atoykan yazdı: Örneğinizi tam inceleme fırsatım olmadı ama yazdığınızdan anladığım bir Main form ve buna bağlı x sayıda alt formunuz mevcut ve bir zaman tablosu çerçevesinde pc saati ile bu çizelgeniz eşleştiğinde altformları yenilemek (requery) istiyorsunuz.
Kabaca aşağıdaki kodları inceleyin ve çalışmanıza uyarlayın
Kod:Private Sub Form_Load()
Me.TimerInterval = 1000 ' Form yüklendiğinde zamanlayıcıyı başlatın
Me.TimerOn = True
End Sub
Kod:Private Sub Form_Timer()
Dim PChhmm As Date ' Bilgisayarın saatini değişken olarak alın
PChhmm = Time
' Zaman tablosundaki başlangıç saatlerini al
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Zaman", dbOpenSnapshot)
Do While Not rs.EOF
If rs!BAŞLANGIÇ = PChhmm Then ' Tablo başlangıç saati ile pc saati eşleşiyorsa alt formu requery edin
RequeryAltForms
Exit Do ' Tablo - PC saatleri arasındaki ilk eşleşmde döngüden çık
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
Private Sub RequeryAltForms()
' Alt formları requery etmek için bu fonksiyonu kullanın
Dim AltFormAdlari As Variant
AltFormAdlari = Array("AltForm1", "AltForm2", "AltForm3", ...................) 'ALtform1,2 vs örnek olarak belirttim kendi formlarınızı tanımlayın.
Dim AltFormAdi As Variant
For Each AltFormAdi In AltFormAdlari
Me.Controls(AltFormAdi).Form.Requery
Next AltFormAdi
End Sub
Cevap verdiğiniz için öncelikle teşekkür ederim. Yapmak istediğimi doğru ifade etmişsiniz. RequeryAltForms kod bloğunu ekledim. Formun Load ve Timer olayları bende farklı ama çalışıyorlar. Ancak maalesef beklediğim sonuç gerçekleşmedi. Panel formunda bulunan tnfsSaati ve dersSaati textboxların formun yenilenmesinde değişmediklerini farkettim. Bu konuda yardımcı olursanız sevinirim.