Μεταφορά μεταβλητών από φόρμα σε φόρμα Έχω μία συνεχή φόρμα η οποία μου εμφανίζει επώνυμα σε text boxes(tbox1, tbox2 κτλ) και δίπλα σε αυτά έχω σύνθετα πλαίσια (cbox1, cbox2 κτλ) για επιλογή κάποιων τιμών. Η φόρμα μου ονομάζεται form1. Αυτό που θέλω, είναι ότι όταν για παράδειγμα επιλέξω από το σύνθετο πλαίσιο μία συγκεκριμένη τιμή - πχ την τιμή 5, το αντίστοιχο επώνυμο να μεταφερθεί σε ένα text box (πχ text1) σε άλλη φόρμα που ονομάζεται form2. Δοκίμασα στο on click event ενός κουμπιού το εξής: Private transfer_button_Click() DoCmd.GoToRecord , , acFirst Do While Me.CurrentRecord - 1 < Me.RecordsetClone.RecordCount If Me.cbox1.Value = "5" Then Me.cbox1.Value = Forms![form2]![text1].Value End If DoCmd.GoToRecord , , acNext Loop End Sub αλλά όταν το τρέχω μου βγάζει πρόβλημα ότι δεν μπορεί να βρει την φόρμα. Καμιά ιδέα? Ευχαριστώ εκ των προτέρων |
Δοκιμασε αυτο... Στο after update του cbox1 θα βαλεις τον εξης κωδικα: DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.ActiveControl.Name |
Το δοκίμασα και μου βγάζει το εξής: Run_time error '438': Object doesn't support this property or method \ και όταν πατάω debug μου έχει κιτρινισμένη τη γραμμή: DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.ActiveControl.Name |
Δοκιμασε κατι αλλο... DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.cbox1 Forms!frm2.text1 = Me.cbox1.Column(2) ' η το column(1) Επισης μετα δοκιμασε και με το column(1). Εαν δεν γινει τιποτα τοτε στειλε δειγμα της ΒΔ μονο με τα βασικα ωστε να το δουμε... |
Έβαλα το: DoCMD.OpenForm "frm2" , , , , , , Me.Name & ";" & Me.cbox1 if Me.cbox1.Column(0) = "1" then Forms!frm2.text1 = Me.Name.Value end if και δουλεύει καλώς 'Σημείωση: το combo box έχει μία στήλη γιαυτό έβαλα column(0). 'Ουσιαστικά ήθελα όταν επιλέγει μία συγκεκριμένη τιμή από το σύνθετο πλαίσιο να περνάει το αντίστοιχο όνομα σε συγκεκριμένο πεδίο στην άλλη φόρμα και δουλεύει μια χαρά. Έχω 2 ερωτήσεις: 1)Αν βάλω ένα κουμπί το οποίο έχει τον ίδιο κώδικα για να κάνει την ίδια δουλειά στο onclick event θα δουλέψει?(υποθέτω ναι (?)) 2)Σε περίπτωση που δουλέψει το 1) (ή δεν δουλέψει) πως μπορώ να αποτρέψω να με μεταφέρει στην φόρμα που ανοίγει και να παραμένω στην ίδια φόρμα. Να την ανοίγει αλλά να μην με μεταφέρει εκεί. Ευχαριστώ πολύ |
Χαιρομαι που σε βοηθησα να το λυσεις. Τωρα στις ερωτησεις σου. ΕΡΩΤΗΣΗ 1. Δοκιμασε το. Εχω τις αμφιβολιες μου παντως. ΕΡΩΤΗΣΗ 2. Χρησιμοποιησε τον παρακατω κωδικα και τροποποιησε τον αναλογος την ονομασια του κριτηριου σου. Δηλ. αλλαξε το Code Και βαλε το δικο σου ονομα που εχεις στην φορμα ως κριτηριο. Dim stDocName As String Dim stLinkCriteria As String stDocName = "frm2" stLinkCriteria = "[Code]=" & Me![Code] DoCmd.OpenForm stDocName, , , stLinkCriteria |
Δεν λειτουργεί τελικά, διότι περνάει μόνο μία επιλογή στη φόρμα και όχι όλες. Όσον αφορά το 2), που ακριβώς μπαίνει αυτός ο κώδικας και τι κριτήριο να ορίσω και που, για να ανοίγει η φόρμα αλλά να μην κατευθύνομαι σε αυτήν; |
Ο Κωδικας αυτος παει με το κλικ σε κουμπι εντολης που εχεις η θα φτιαξεις. Το κριτηριο στο παραδειγμα μου ειναι το Code. Εσυ βαλε το δικο σου. Εαν θελεις να ανοιγει η δευτερη φορμα αλλα να παραμενεις στην πρωτη εχεις καποιες επιλογες που μπορεις να χρησιμοποιησεις. Ειτε για παραδειγμα να κανεις την φορμα σου Modal η να της δωσεις το SetFocus. Δηλαδη μετα τον κωδικα που σου προτεινα να βαλεις αφου ανοιξει η φορμα 2 me.frm1.SetFocus... |
Τελικά έβαλα στον κώδικα μετά το άνοιγμα το me.setfocus και δουλεύει μια χαρά! Σε ευχαριστώ πολύ! |
Η ώρα είναι 07:31. |
Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.