Formda Otomatik Yenileme

1 2
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.
17/12/2023, 22:24

atoykan

Örneğinizi detaylı incelemeye vaktim inanın yok, içinde olduğum tempoyu tahmin bile edemezsiniz. Şöyle bir baktım çalışmanızda sorgularınızın ölçüt değeri tenefüs ve ders saatleri alanları olduğundan altformları requery etmeden önce bu alanları güncellemeniz gerek. Buna göre RequeryAltForms kod bloğunun başına örneğin
Kod:
Me.Controls("tenefüs_saat").Value = GetTenefusSaat()
    Me.Controls("ders_saat").Value = GetDersSaat()
kodunu ekleyip tenefüs ve ders saatlerini belirlemek için RequeryAltForms kod bloğundan sonra aşağıdaki fonksiyonları ekleyin.
Kod:
Private Function GetTenefusSaat() As Date
     GetTenefusSaat = Time         ' Örnek olarak şu anki saati atıyorum, tenefüs saati için kendi sorgunuzu yazın ve değeri bulun
End Function

Private Function GetDersSaat() As Date
     GetDersSaat = Time     ' aynı şekilde örnek olarak şu anki saati döndürdüm, kendi değerinizin kurgusunu yapın.
End Function

tenefüs ve ders saateri güncellendikten sonra altformlar güncellenecektir.
22/12/2023, 11:13

atoykan

sorununuz çözüldü mü?
24/12/2023, 18:34

6246386

(22/12/2023, 11:13)atoykan yazdı: sorununuz çözüldü mü?

Evet çözüldü. Verdiğiniz çözüm önerileri için ve kodlar için çok teşekkür ederim.
25/12/2023, 15:41

atoykan

Rica ederim iyi çalışmalar.
1 2