Εμφάνιση ενός μόνο μηνύματος
  #14  
Παλιά 19-03-10, 10:13
pm4698 Ο χρήστης pm4698 δεν είναι συνδεδεμένος
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή

Τάσο καλημέρα,

Μου έδωσες να καταλάβω πολύ καλά πως δουλεύει η μεταβλητή του παραδείγματος!

Συνειδητοποίησα ότι δεν χρειάζεται τελικά να περάσω δύο μεταβλητές στην φόρμα που ανοίγω αλλά μία - μόνο το Επώνυμο.

Δηλαδή, θα έχω

Docmd.openform form's_name, , , , , , Me.Επώνυμο & ";"

Ουσιαστικά οι τιμές του σύνθετου πλαισίου της αρχικής φόρμας(ΣΕΝΤΟΝΙ) δεν συνδέονται με κάποιο στοιχείο της φόρμας που θα ανοίγει κάθε φορά.
Στο afterupdate του σύνθετου πλαισίου της αρχικής φόρμας έχω πολλά if.
Δηλαδή, εάν επιλεγεί μία συγκεκριμένη τιμή από το σύνθετο πλαίσιο, τότε το Επώνυμο της συγκεκριμένης εγγραφής θα περνάει σε διαφορετικό κάθε φορά textbox της φόρμας που ανοίγει.

Άρα για να δουλέψει με τον συγκεκριμένο τρόπο, φαντάζομαι δεν θα χρειαστεί να κάνω split την OpemArgs, δηλαδή θα έχω

Private Sub Form_Load()
Dim MyValues() As String
If Not IsNull(Me.OpenArgs) Then
Me.txtArgs1 = MyValues(0)
End If
End Sub

Στην περίπτωσή μου όμως το txtArgs1 δεν είναι το ίδιο κάθε φορά. Όσες επιλογές έχω στο σύνθετο πλαίσιο της αρχικής φόρμας, τόσα text boxes έχω στην φόρμα που ανοίγει και όπως ανέφερα η μεταφορά γίνεται με if γιατί δεν υπάρχει διασύνδεση textboxes με τις τιμές του σύνθετου πλαισίου.

Συνεπώς, δεν θα δουλέψει το onLoad event γιατί θα ανοίγει αρχικά η εκάστοτε φόρμα αλλά θα περνάνε συνέχεια τιμές και μετά την φόρτωση. Άρα, φαντάζομαι θα χρησιμοποιήσω afterupdate event για την φόρμα που ανοίγει και θα βάλω εκεί μέσα τα if.

Δηλαδή,

Private Sub Form_After_Update()
Dim MyValues() As String
If Not IsNull(Me.OpenArgs) Then
if forms!arxikh_forma.combobox_arxikhs_formas = ΤΑΜ1 then
Me.k1= MyValues(0)
End If
else
if forms!arxikh_forma.combobox_arxikhs_formas = ΤΑΜ2 then
Me.k2= MyValues(0)
End If
κτλ
End Sub

Θα δουλέψει με αυτόν τον τρόπο?

Ευχαριστώ πολύ
Απάντηση με παράθεση