Ανανέωση ιστοσελίδας

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 03-03-10, 11:58
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή Επιλογή φόρμας

Καλησπέρα σας!
Έχω το εξής:
Θέλω να πατάω ένα κουμπί και να μου εμφανίζει ένα MsgBox από το οποίο θα έχω 4 επιλογές (το κείμενο και δίπλα σε κάθε κείμενο ένα checkbox). Κάθε επιλογή αντιστοιχεί σε και σε μία φόρμα.
Με το που επιλέγω ένα checkbox τότε θέλω το όνομα της αντίστοιχης φόρμας να αποθηκεύεται σε ένα string για παράδειγμα και έπειτα, αυτό το string να το χρησιμοποιήσω για το άνοιγμα της φόρμας.

Ένα στο περίπου παράδειγμα είναι το εξής:

'public strInput As String 'Καταχώρηση ονόματος
Private button_name_Click()


Dim strInput1 As CheckBox 'Επιλογή 1ης φόρμας
Dim strInput2 As CheckBox 'Επιλογή 2ης φόρμας
Dim strInput3 As CheckBox 'Επιλογή 3ης φόρμας
Dim strInput4 As CheckBox 'Επιλογή 4ης φόρμας
φόρμας
Dim strMsg As String

Beep
strMsg = "Παρακαλώ, επιλέξτε την φόρμα που θέλετε να ανοίξετε"
MsgBox "Φόρμα1" & vbCrLf & vbLf & strInput1 & _
"Φόρμα2" & vbCrLf & vbLf & strInput2 & _
"Φόρμα3" & vbCrLf & vbLf & strInput3 & _
"Φόρμα4" & vbCrLf & vbLf & strInput4 & _
"", _
vbInformation, "Επιλογή φόρμας"

strInput = InputBox(Prompt:=strMsg, title:="Επιλογή φόρμας στοιχείων")

if me.strInput1.value= true then
strInput = "Φόρμα1 & "'"
else if me.strInput2.value= true then
strInput = "Φόρμα2 & "'"
else if me.strInput3.value= true then
strInput = "Φόρμα3 & "'"
else if me.strInput4.value= true then
strInput = "Φόρμα4 & "'"
end if
end if
end if
end if

end sub

Άρα στην μεταβλητή strInput θα αποθηκεύεται κάθε φορά το όνομα της φόρμας που θέλω.
Έπειτα όταν θέλω να την ανοίξω θα γράφω:
DoCmd.OpenForm "strInput", , , , , ,

Γίνεται κάτι τέτοιο?
Αν ναι, η σύνταξη του κώδικα που έχω γράψει είναι σωστή?

Ευχαριστώ εκ των προτέρων
Απάντηση με παράθεση
  #2  
Παλιά 03-03-10, 13:38
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Γεια σας!

Αγαπητέ φίλε Παντελή,
στο ζητούμενο σου θα σου πρότεινα μια διαφορετική προσέγγιση (βλ. συνημμένο).

Με εκτίμηση

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccSelectForm.mdb (184,0 KB, 100 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 03-03-10, 22:25
Όνομα: Μιχαλης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2010
Περιοχή: Ναύπλιο
Μηνύματα: 36
Προεπιλογή

Καλησπέρα σε όλους.

Φίλε Παντελή πιστεύω πως το συνημμένο αρχείο είναι αυτό που ψάχνεις.

Υ.Γ. Θα πρέπει στον πίνακα Switchboard Items στην στήλη Argument να γράψεις το όνομα της φόρμας που θες να ανοίγει πατώντας την επιλογή αυτή.

Φιλικά Μιχάλης.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip EPILOGI FORMAS.zip (64,6 KB, 80 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 07-03-10, 20:40
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή

Αυτό που θέλω είναι, να έχω για παράδειγμα 5 επιλογές. Όταν επιλέγω την πρώτη, να αποθηκεύεται σε ένα Public string η ονομασία της φόρμας που επέλεξα και να μην ανοίγει επιτόπου. Θα ανοίγει όταν την καλώ μέσα σε συνάρτηση με εντολή:
DoCmd.OpenForm "strInput", , , , , ,
όπου strInput Θα είναι η ονομασία της φόρμας που επέλεξα.
Ουσιαστικά χρησιμοποιώ το DoCmd.OpenForm "name_of_form", , , , , ,
Θέλω να μην ανοίγει σταθερά μία φόρμα αλλά να μπορώ να αλλάξω το όνομα της φόρμας ανάλογα με αυτό που θέλω να κάνω κάθε φορά.
Πιστεύω ότι ο κώδικας που έχω στο πρώτο post αντιπροσωπεύει αυτό που θέλω να κάνω.
Απάντηση με παράθεση
  #5  
Παλιά 16-03-10, 09:09
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή

Δοκίμασα αυτό:

Option Compare Database
Dim strGeneralFormName As String

Private Sub button_Click()

On Error GoTo Err_button_Click

Dim intFormNumber As Integer

MsgBox "Για Δευτέρα πληκτρολογήστε το 1" & vbCrLf & vbLf & strInput1 & _
"Για Τρίτη πληκτρολογήστε το 2" & vbCrLf & vbLf & strInput2 & _
"Για Τετάρτη πληκτρολογήστε το 3" & vbCrLf & vbLf & strInput3 & _
"Για Πέμπτη πληκτρολογήστε το 4" & vbCrLf & vbLf & strInput4 & _
"", _
vbInformation, "Επιλογή φόρμας..."

intFormNumber = InputBox("Παρακαλώ πληκτρολογήστε έγκυρο αριθμό από το 1-4")

Select Case intFormNumber

Case Is = 1
strGeneralFormName = "MON"
Case Is = 2
strGeneralFormName = "TUS"
Case Is = 3
strGeneralFormName = "WED"
Case Is = 4
strGeneralFormName = "THU"
End Select

Exit_button_Click:
Exit Sub

Err_button_Click:
MsgBox Err.Description
Resume Exit_button_Click

End Sub

Επομένως πατώντας το κουμπί, θα αποθηκεύεται στην μεταβλητή strGeneralFormName το όνομα της φόρμας που επέλεξε ο χρήστης. Στη συνέχεια, θέλω η φόρμα που αποθηκεύτηκε σε αυτή τη μεταβλητή να ανοίγει στο after update του combobox από την εντολή:

DoCMD.OpenForm strGeneralFormName, , , , , , Me.Name & ";" & Me.combobox

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

Σημείωση: Η σύνταξη της τελευταίας γραμμής κώδικα θέλω να παραμείνει.
Δεν μπορώ δηλαδή να χρησιμοποιήσω απλά τον κώδικα:

DoCmd.OpenForm strGeneralFormName

Καμιά ιδέα?

Ευχαριστώ εκ των προτέρων
Απάντηση με παράθεση
  #6  
Παλιά 16-03-10, 15:36
Το avatar του χρήστη editolis
Super Moderator
Όνομα: Τολης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-01-2010
Περιοχή: ATHENS-GREECE
Μηνύματα: 180
Προεπιλογή

Κατα την γνωμη μου με αυτο τον "δρομο" που εχεις διαλεξει
πρεπει να δημιουργησεις ενα πινακα
που να εχει μεσα ολες τις παραμετρους σου και απο εκει
να ανοιγεις της φορμες σου αναλογως με αυτο που θελεις.

Καλη συνεχεια.
Απάντηση με παράθεση
  #7  
Παλιά 16-03-10, 18:04
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Αγαπητέ Παντελή,

Δες ακόμα μια πρόταση που κάνει αυτά που περιγράφεις.

Με εκτίμηση

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccSelectForm.mdb (296,0 KB, 64 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #8  
Παλιά 17-03-10, 12:47
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή

Μου εμφανίζει κάποιο πρόβλημα λάθους σε περαιτέρω κομμάτι κώδικα.

Ο κώδικας είναι του στυλ forms!strFormName.combobox = me.textbox.value και μου βγάζει πρόβλημα ότι θέλει όνομα φόρμας στο forms!strFormName.

Καμιά ιδέα?
Απάντηση με παράθεση
  #9  
Παλιά 17-03-10, 13:48
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Παντελή, ο κώδικας που περιγράφεις δεν έχει καμία σχέση με το παράδειγμα μου.

Προφανώς η μεταβλητή strFormName χρειάζεται να είναι Public όπως στο παράδειγμα μου
ή αναφέρεσαι σε υποφόρμα οπότε θα πρέπει να το χειριστείς διαφορετικά.

Διαφώτισε μας στο σημείο αυτό.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #10  
Παλιά 17-03-10, 16:19
Όνομα: Παντελής
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-02-2010
Περιοχή: Καβάλα
Μηνύματα: 54
Προεπιλογή

Ο τρόπος λειτουργίας είναι αυτός που περιγράφεται στο topic:

http://www.ms-office.gr/forum/access...-se-forma.html

μέχρι και το 5ο reply.

Αυτό που προσπαθώ να κάνω είναι στο
docmd.openform nameform κτλ
αλλά και σε κώδικα του τύπου:
Forms!frm2.text1 = Me.Name.Value
να αναφέρομαι στην φόρμα ως μεταβλητή.

Δηλαδή να επιλέγει ο χρήστης αρχικά το ποια φόρμα θα χρησιμοποιήσει και να χρησιμοποιείται πιο μετά σε σημεία τύπου:

DoCMD.OpenForm "frm2" , , , , , , Me.Name & ";" & Me.cbox1
και
Forms!frm2.text1 = Me.Name.Value

έτσι ώστε εάν θέλω να επιλέξω άλλη φόρμα να ανοίξει να είναι ¨ευέλικτος¨ ο κώδικας και να προσαρμόζεται σε άλλη φόρμα.
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
events, openargs, raiseevent, withevents, ορίσματα, συμβάντα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Αντιγραφή αντικειμένου φόρμας σε αντικείμενο άλλης φόρμας zinocrotale Access - Ερωτήσεις / Απαντήσεις 3 18-04-13 18:35
Ενημέρωση Πεδίου Δευτερεύουσας Φόρμας μέσω Βοηθητικής Φόρμας Χρήστος Access - Ερωτήσεις / Απαντήσεις 1 17-04-12 19:18
Επιλογή "άκυρο" σε μήνυμα με το κλείσιμο της φόρμας Βackup alex Access - Ερωτήσεις / Απαντήσεις 3 14-03-12 11:52
[Συναρτήσεις] Επιλογή αριθμών gpentez Excel - Ερωτήσεις / Απαντήσεις 2 10-03-12 08:56
[ Active X Controls ] Επιλογή ημερομηνίας από Active X και αυτόματη ενημέρωση φόρμας Χρήστος Access - Ερωτήσεις / Απαντήσεις 14 31-12-10 17:06


Η ώρα είναι 20:06.