Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 09-08-24, 12:54
γιώργοςΚ Ο χρήστης γιώργοςΚ δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Tasos Εμφάνιση μηνυμάτων
Καλησπέρα σε όλους!

Γιώργο πρόσθεσε μια μονάδα κλάσης (Εντολή: Insert > Class Module), μετονόμασε την σε "clsTextBoxes", πέρασε της τον παρακάτω κώδικα:

Κώδικας:
Option Compare Database
Option Explicit

Private WithEvents tBox As TextBox
Private refTextBox As TextBox

Public Sub SetTextBoxWithEvent(txtBox As TextBox)
    Set tBox = txtBox
    txtBox.OnEnter = "[Event Procedure]"
End Sub

Public Sub SetRefTextBox(refTBox As TextBox)
    Set refTextBox = refTBox
End Sub

Private Sub tBox_Enter()
    If Not tBox Is Nothing Then
        refTextBox.Value = tBox.Name
    End If
    
End Sub
... και αποθήκευσε.

Κατόπιν επίλεξε όλα τα πεδία κειμένου που σε ενδιαφέρουν και στην ιδιότητα "Ετικέτα" ("Tag") πληκτρολόγησε τον αριθμό 1.

Στη φόρμα σου (Form1) αφαίρεσε τα πάντα από τον κώδικα, επικόλλησε τον παρακάτω και κάνε τις δοκιμές σου:

Κώδικας:
Option Compare Database
Option Explicit

Private ctrls() As clsTextBoxes

Private Sub Form_Load()
    Dim i      As Integer
    Dim ctlCount As Integer
    Dim ctl    As Control
    
    For Each ctl In Me.Section(0).Controls
        If TypeOf ctl Is Access.TextBox Then
            If ctl.Tag = 1 Then
                i = i + 1
                ReDim Preserve ctrls(i)
                Set ctrls(i) = New clsTextBoxes
                ctrls(i).SetTextBoxWithEvent ctl
                ctrls(i).SetRefTextBox Me.txtControlName
            End If
        End If
    Next
End Sub
Καλή συνέχεια.

Τάσος

Τάσο σε χαιρετω και ευχαριστω για την προθεση βοήθειας,

Εχω κανει ολα τα πιο πανω τα οποια παραθέτεις αλλα κτυπα ο κωδικας στο

Private Sub Form_Load()
Private ctrls() As clsTextBoxes
Dim i As Integer
Dim ctlCount As Integer
Dim ctl As Control

For Each ctl In Me.Section(0).Controls
If TypeOf ctl Is Access.TextBox Then
If ctl.Tag = 1 Then
i = i + 1
ReDim Preserve ctrls(i)
Set ctrls(i) = New clsTextBoxes
ctrls(i).SetTextBoxWithEvent ctl
ctrls(i).SetRefTextBox Me.txtControlName
End If
End If
Next
End Sub
Απάντηση με παράθεση