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/754-epikoinonia-dio-formon.html)

iondep 28-09-10 18:45

Επικοινωνία δύο φορμών
 
Καλησπέρα σε όλους,

επανήλθα με νέο ερώτημα..χεχε..
έχω μία φόρμα form1 πάνω σε έναν πίνακα table1. Και μία φόρμα form2 πάνω σε ένα ερώτημα, που στην ουσία φιλτράρει και μου δίνει κάποιες εγγραφές του ίδιου πίνακα, table1. Η form2 ανοίγει αφού πατήσω ένα button στη form1.

Ερώτηση: Μπορώ με double-click ή με ένα κουμπί να μεταφέρω μια επιλεγμένη εγγραφή από την form2 στην form1?
Στην ουσία οι εγγραφές και στις δύο φόρμες προέρχονται από τον ίδιο πίνακα,table1, απλά αυτό γίνεται για να γίνει κάποιο update σε καποια πέδια της εγγραφής που θα εισάγεται από την form2.

ευχαριστώ εκ των προτέρων,
φιλικά,
Δέσποινα.

Meteora 28-09-10 20:09

Δέσποινα καλησπέρα.
Δώσε μας αυτό το τμήμα της βάσης σου. Ξέρεις ! μερικές εγγραφές, συμπίεση, "ζιπάρισμα" και ανέβασμα. Είναι βέβαιο οτι θα πάρεις απάντηση.
Αναμένουμε τις δικούς χειρισμούς / Νίκος Δ.

Υστερολόγιο: Αγαπητή μου σε ένα Forum το ζητούμενο είναι η συμμετοχή. Αυτό το γεγονός κρατά το Forum ζωντανό. Να αισθάνεσαι λοιπόν άνετα...

kapetang 28-09-10 20:28

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

Δέσποινα, αν κατάλαβα καλά θέλεις να τροποποιείς κάποιες εγγραφές στη Form2 και να εμφανίζονται και στη Form1.
Αν είναι έτσι, οι τροποποιήσεις που θα κάνεις στη Form2 θα αποθηκευτούν στον πίνακα table1 και θα εμφανιστούν και στη Form1 χωρίς καμία άλλη ενέργεια (ίσως να χρειαστεί να ανανεωθεί το περιεχόμενό της πχ να την κλείσουμε και να την ξανανοίξουμε ή μια γραμμή κώδικα).

Φιλικά/Γιώργος

iondep 28-09-10 21:39

1 Συνημμένο(α)
Ετοίμασα ένα πρόχειρο δείγμα αυτού που θέλω να κάνω..
ΚΑΤΑΓΡΑΦΗ ΠΩΛΗΣΗΣ1->Βάζω προιόντα
Πατάω κουμπί ΘΕΣΗ->Μου δίνει τα προιόντα του συσκεκριμένου δελτίου και κάνω update την θέση στο τευταίο πεδίο.
Και αυτό που θέλω να κάνω:
Πατάω το κουμπί ΠΡΟΣΘΗΚΗ και μου δείχνει την λίστα των προιόντων που προκύπτουν από το ερώτημα,θα ήθελα με κάποιον τρόπο να παίρνω την εγγραφή που θέλω είτε με double click είτε με επιλογή της εγγραφής και κάποιο κουμπί και να μπαίνει στην λίστα της φόρμας ΘΕΣΗ για να κάνω update στην θέση της.

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

Ελπίζω να γίνομαι κατανοητή...


Συνημμένο Αρχείο 693

iondep 29-09-10 10:52

Καλημέρα σε όλους,

Γιώργο έχεις δίκιο αυτό συμβαίνει αλλά μήπως θα μπορούσε να υπάρχει ένας τρόπος πιο αυτοματοποιημένος (αν και είναι ήδη)?
Γιατί αν παρμείνει έτσι ο χρήστης πρέπει να κλείσει 3 φόρμες και να ανοίξει μετά τις δύο...
Ρωτάω μήπως..

Φιλικά,
Δέσποινα.

kapetang 29-09-10 18:09

Καλησπέρα

Δέσποινα το πρόβλημα είναι ότι δεν μπορώ να ανοίξω το αρχείο που ανεβάζεις.
Ίσως πετύχει το παρακάτω:
Σε κάθε φόρμα που θέλεις να ενημερώνεται, στο συμβάν με την ενεργοποίηση (προβολή σχεδίασης > φύλλο ιδιοτήτων φόρμας > καρτέλα συμβάν > με την ενεργοποίηση > δόμηση κώδικα), πρόσθεσε τον κώδικα:
Private Sub Form_Activate()
Me.Refresh
End Sub
Έτσι η φόρμα μόλις γίνεται ενεργή (έχει την εστίαση) θα ανανεώνει το περιεχόμενό της.

Φιλικά/Γιώργος

nisgia 30-09-10 02:13

Γεια και χαρά σε όλη τη παρέα!

Δέσποινα, ...με μια γρήγορη ματιά στο παράδειγμα που μας έδωσες, φαίνεται πως η προσθήκη του πεδίου
"ΑΡ CONTAINER" στη φόρμα "ΚΑΤΑΓΡΑΦΗ ΠΩΛΗΣΗΣ" να λύνει το πρόβλημά σου.:001_unsure:

Όμως αυτό που επίσης φαίνεται, είναι πως η εφαρμογή σου έχει σοβαρό πρόβλημα σχεδιασμού.:noexpression:

Αν έχεις τη διάθεση, προσπάθησε λίγο να μας περιγράψεις γενικά τις ενέργειες που καλείται η εφαρμογή σου
να παρακολουθεί καθώς και τα αντικείμενα και τα στοιχεία τους τα οποία καλείται να διαχειριστεί.
Ίσως η διαδικασία αυτή - εκτός του ότι θα δώσει σε εμάς την ευκαιρία να σε βοηθήσουμε ουσιαστικά
στην όποια προσπάθειά σου - να βοηθήσει και 'σένα να κατανοήσεις καλύτερα τη φιλοσοφία την οποία
θα πρέπει να ακολουθήσεις στο σχεδιασμό της εφαρμογής σου.

Τα λέμε λοιπόν!
Καλή συνέχεια! :smile:

Φιλικά,
Γιάννης

iondep 30-09-10 11:04

Καλημέρα σε όλους,

Γιάννη..αυτό που έστειλα είναι ένα απόσπασμα από την βάση, που απομόνωσα χάριν του προβλήματος..
Από κεί και πέρα, αυτό που μου ζητήθηκε είναι η επανασχεδίαση υπάρχουσας βάσης οπότε λίγα πράγματα μπορούν να διορθωθούν..Λόγω του τρόπου λειτουργίας της εταιρείας και της μέχρι τώρα βάσης της, ήταν αναγκαστική (έτσι το έκρινα) η χρήση τριπλού κλειδιού σε έναν πίνακα, για να καταλάβεις..
Όπως και να έχει, αν έχεις καμιά ιδέα για καλύτερη σχεδίαση είναι ευπρόσδεκτη..

Φιλικά,
Δέσποινα

iondep 30-09-10 11:59

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

Φιλικά,
Δέσποινα

kapetang 30-09-10 16:29

1 Συνημμένο(α)
Καλημέρα στην παρέα

Δέσποινα το παράδειγμα που επισυνάπτω πιστεύω να σε βοηθήσει να καταλάβεις πως συγχρονίζονται οι φόρμες. Είναι σε access 2003 και συνεπώς δε θα έχεις πρόβλημα να το ανοίξεις.
  1. Η βάση δεδομένων αποτελείται από ένα πίνακα πελατών (tblCustomers) που περιέχει και ένα πεδίο (Active) τύπου Ναι/Όχι για να διαχωρίζει τους πελάτες σε ενεργούς και μη.
  2. Έχει μία φόρμα (frmCustomers1) που εμφανίζει όλους τους πελάτες και ένα κουμπί που αν το πατήσουμε εμφανίζει τη φόρμα (frmCustomers2) που περιέχει μόνο τους ενεργούς πελάτες.
Για να φανεί ότι οι δύο φόρμες είναι συγχρονισμένες, κάνουμε τη δοκιμή:
1. Ανοίγουμε την frmCustomers1 και πατούμε το κουμπί για να ανοίξει και η frmCustomers2.
2. Στη frmCustomers2 ο Αθανασίου είναι ενεργός πελάτης. Τον κάνουμε μη ενεργό (βγάζουμε το τικ από το πλαίσιο ελέγχου), οπότε εμφανίζεται ένα μολυβάκι αριστερά στη φόρμα που δείχνει ότι έγιναν αλλαγές. Ενώ η φόρμα είναι ενεργή αποθηκεύουμε τις αλλαγές από το μενού (Εγγραφές > αποθήκευση εγγραφής).
Παρατηρούμε ότι ο Αθανασίου δεν εμφανίζεται πλέον στην frmCustomers2 και στην frmCustomers1 εμφανίζεται ως ανενεργός.
3. Αν στη φόρμα frmCustomers1 κάνουμε πάλι ενεργό τον Αθανασίου αποθηκεύσουμε τις αλλαγές ((Εγγραφές > αποθήκευση εγγραφής) και πατήσουμε το κουμπί εμφανίζεται πάλι στην frmCustomers2.
Η παραπάνω λειτουργικότητα εξασφαλίζεται από τον παρακάτω κώδικα που βρίσκεται στη φόρμα frmCustomers2
Κώδικας:

Private Sub Form_Activate()
    Me.Requery
End Sub

Private Sub Form_AfterUpdate()
    Me.Requery
    Forms("frmCustomers1").Requery
End Sub

Πάντως έχω την εντύπωση ότι δουλεύσεις κάπως ανορθόδοξα γι' αυτό σου προτείνω και γω να ξανακοιτάξεις τη δομή της βάσης σου.

Φιλικά/Γιώργος


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

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


Search Engine Optimization by vBSEO 3.3.2