Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 26-06-10, 12:37
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα σε όλους!

Αγαπητέ φίλε/φίλη (δεν ξέρω το όνομα σου) ,

θέλω στο σημείο αυτό να σου πω το ταπεινό μου μπράβο στην προσπάθεια που κάνεις
πάνω στην Access αλλά και για την ενεργή συμμετοχή σου στο φόρουμ!

Ας ξεκινήσουμε λοιπόν

Για να ελέγξεις τα συμβάντα των 168 TextBox της φόρμας σου θα χρειαστείς ένα
Class Module (Insert > Class Module) με το όνομα: clsTextBoxes που θα περιέχει τον παρακάτω κώδικα:
Κώδικας:
Option Compare Database
Option Explicit

Private WithEvents AccTextBox As Access.TextBox

Public Property Set TheTextBox(ByVal TheTextBox As Access.TextBox)
    Set AccTextBox = TheTextBox
    AccTextBox.OnDblClick = "[Event Procedure]"
    'AccTextBox.AfterUpdate = "[Event Procedure]"
    'και όποιο άλλο συμβάν χρειαστείς
End Property

Public Property Get TheTextBox() As Access.TextBox
    Set TheTextBox = AccTextBox
End Property

'Private Sub AccTextBox_AfterUpdate()
'    'Ο κώδικας σου
'End Sub

Private Sub AccTextBox_DblClick(Cancel As Integer)
Cancel = True
DoCmd.OpenForm FormName:="frmRdv", WindowMode:=acDialog ', OpenArgs:= πχ. AccTextBox.Tag...
'Προσάρμοσε το έτσι που να ανοίγει η φόρμα με την επιθυμητή εγγραφή.
End Sub
Κατόπιν, στο Module1 ή σε κάποιο άλλο κοινό Module πέρασε μια public μεταβλητή με το όνομα "frm"

δηλ.:
Κώδικας:
Option Compare Database
Option Explicit
Public frm As Access.Form

' κώδικας ....................
'.................................. 
Στην κορυφή του κώδικα της φόρμας"frmPlan", δήλωσε μια μεταβλητή πίνακα (Array)
που θα αναφέρεται στο Class Module "clsTextBoxes" όπως φαίνεται παρακάτω:
Κώδικας:
Option Compare Database
Option Explicit
Dim TextBoxes(0 To 168) As New clsTextBoxes
και στο OnLoad() της φόρμας:

Κώδικας:
Private Sub Form_Load()
    Dim i%, ctl As Access.Control
    Set frm = Me.Form
    For Each ctl In Me.Section(0).Controls
        If TypeOf ctl Is Access.TextBox Then
            If ctl.Tag <> vbNullString Then
                Set TextBoxes(i).TheTextBox = ctl
                i = i + 1
            End If
        End If
    Next
    Call FillWeeklyPlan(Me)
End Sub
Αφου κάνεις τα παραπάνω, θα μπορείς με διπλό κλικ σε οποιοδήποτε πλαίσιο κείμενου στη λεπτομέρεια της φόρμας "frmPlan" να ανοίγεις τη φόρμα "frmRDV"

Ξεκίνα μ αυτά και φυσικά αν χρειαστείς κάτι εδώ είμαστε




Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 26-06-10 στις 12:48.
Απάντηση με παράθεση