Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Μεταφορά μεταβλητών από φόρμα σε φόρμα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/468-metafora-metabliton-apo-forma-se-forma.html)

pm4698 02-03-10 20:52

Μεταφορά μεταβλητών από φόρμα σε φόρμα
 
Έχω μία συνεχή φόρμα η οποία μου εμφανίζει επώνυμα σε 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

αλλά όταν το τρέχω μου βγάζει πρόβλημα ότι δεν μπορεί να βρει την φόρμα.
Καμιά ιδέα?

Ευχαριστώ εκ των προτέρων

editolis 02-03-10 22:42

Δοκιμασε αυτο...

Στο after update του cbox1 θα βαλεις τον εξης κωδικα:

DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.ActiveControl.Name

Forms!frm2.text1 = Me.cbox1.Column(2)
' η το column(1)

pm4698 03-03-10 08:11

Το δοκίμασα και μου βγάζει το εξής:
Run_time error '438':
Object doesn't support this property or method \

και όταν πατάω debug μου έχει κιτρινισμένη τη γραμμή:

DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.ActiveControl.Name

editolis 03-03-10 12:30

Δοκιμασε κατι αλλο...

DoCmd.OpenForm "frm2", , , , , , Me.Name & ";" & Me.cbox1

Forms!frm2.text1 = Me.cbox1.Column(2)

' η το column(1)

Επισης μετα δοκιμασε και με το column(1).

Εαν δεν γινει τιποτα τοτε στειλε δειγμα της ΒΔ μονο
με τα βασικα ωστε να το δουμε...

pm4698 05-03-10 11:17

Έβαλα το:
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) (ή δεν δουλέψει) πως μπορώ να αποτρέψω να με μεταφέρει στην φόρμα που ανοίγει και να παραμένω στην ίδια φόρμα. Να την ανοίγει αλλά να μην με μεταφέρει εκεί.

Ευχαριστώ πολύ

editolis 05-03-10 12:19

Χαιρομαι που σε βοηθησα να το λυσεις.

Τωρα στις ερωτησεις σου.

ΕΡΩΤΗΣΗ 1. Δοκιμασε το. Εχω τις αμφιβολιες μου παντως.
ΕΡΩΤΗΣΗ 2. Χρησιμοποιησε τον παρακατω κωδικα και
τροποποιησε τον αναλογος την ονομασια του κριτηριου σου.

Δηλ. αλλαξε το Code Και βαλε το δικο σου ονομα που εχεις
στην φορμα ως κριτηριο.


Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm2"
stLinkCriteria = "[Code]=" & Me![Code]
DoCmd.OpenForm stDocName, , , stLinkCriteria

pm4698 07-03-10 20:29

Δεν λειτουργεί τελικά, διότι περνάει μόνο μία επιλογή στη φόρμα και όχι όλες.
Όσον αφορά το 2), που ακριβώς μπαίνει αυτός ο κώδικας και τι κριτήριο να ορίσω και που, για να ανοίγει η φόρμα αλλά να μην κατευθύνομαι σε αυτήν;

editolis 08-03-10 06:47

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

Το κριτηριο στο παραδειγμα μου ειναι το Code. Εσυ βαλε το δικο σου.

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

Ειτε για παραδειγμα να κανεις την φορμα σου Modal η να της δωσεις το SetFocus.

Δηλαδη μετα τον κωδικα που σου προτεινα να βαλεις αφου ανοιξει η φορμα 2

me.frm1.SetFocus...

pm4698 11-03-10 11:42

Τελικά έβαλα στον κώδικα μετά το άνοιγμα το
me.setfocus και δουλεύει μια χαρά!

Σε ευχαριστώ πολύ!


Η ώρα είναι 07:31.

Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2