Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Χρήση ίδιου κώδικα σε πολλές φόρμες αλλά γραμμένος σε μιά μόνον Module (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5225-xrisi-idioy-kodika-se-polles-formes-alla-grammenos-se-mia-monon-module.html)

dimitrisp 22-04-19 15:01

Χρήση ίδιου κώδικα σε πολλές φόρμες αλλά γραμμένος σε μιά μόνον Module
 
1 Συνημμένο(α)
Γειά σας

Στο παρακάτω συνημμένο (απλοποιημένο παράδειγμα βάσης), υπάρχουν τρεις φόρμες.
Σε κάθε φόρμα υπάρχει ένα κουμπί εντολής όπου με ανάλογο κώδικα καλείται μιά τρίτη φόρμα.
Ο κώδικας βρίσκεται σε μια Module.(διότι δε θέλουμε να ξαναγράφεται σε κάθε εντολή)
Ωστόσο, ο κώδικας δε λειτουργεί κατ' αυτόν τον τρόπο.
Πώς θα είναι δυνατόν να διορθώσουμε - τροποποιήσουμε τον εν λόγω κώδικα προκειμένου
να λειτουργεί για όλες τις υπάρχουσες φόρμες?

Σε κάθε περίπτωση, θέλουμε ο τρέχων κώδικας να βρίσκεται γραμμένος σε μιά μόνον Module!

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

vraxnakisg 22-04-19 18:04

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

Δες το αρχείο, πιστεύω να είναι αυτό που θέλεις.

Ευχαριστώ.

dimitrisp 22-04-19 18:16

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

Γιώργο, σ' ευχαριστώ για την άμεση πρότασή σου.

Αλλά δε λειτουργεί, δηλαδή πατώντας το κουμπί δεν αναδύεται η φόρμα "FORM" η οποία να εμφανίζει τη συγκεκριμένη εγγραφή που απαιτεί ο κώδικας...

Ανεβάζω εκ νέου το αρχείο στο οποίο διορθώθηκε το όνομα της φόρμας "FORM" σε frmFinal (που είναι και το σωστό)

vraxnakisg 22-04-19 19:52

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

Αν κατάλαβα καλά αυτό πρέπει να είναι το ζητούμενο.

Ευχαριστώ.

dimitrisp 22-04-19 20:39

Καλησπέρα

Πράγματι, Γιώργο, αυτό είναι!!!

Ευχαριστώ, νάσαι καλά, καλή συνέχεια...

dimitrisp 22-04-19 22:05

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

Γιώργο, μιά ακόμη βοήθεια, αν μπορείς:
Όταν έχουμε τις φόρμες σε μορφή "περιήγησης" ο κώδικας χτυπάει στο
Set frm = Forms(frmName)...
Έχεις καμιά ιδέα γιαυτό?

Ανεβάζω σχετικό παράδειγμα.

vraxnakisg 23-04-19 10:39

Καλήμερα Δημήτρη,

Πρέπει να διορθώσεις τα ονόματα των αντικείμενων σου (Φόρμες).

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

Αν Θέλεις περιέγραψε τι προσπαθείς να κάνεις.

Ο κώδικας βγάζει λάθος γιατί δεν βρίσκει το αντικείμενο.

Ευχαριστώ.

dimitrisp 23-04-19 13:20

1 Συνημμένο(α)
Γειά σας

Γιώργο, θα προσπαθήσω να εξηγήσω "χονδρικά" τι προτίθεμαι να δημιουργήσω:
Προσπαθώντας να ταξινομήσω τις φόρμες μου, ανάλογα με το αντικείμενό τους,
σκέφτηκα να χρησιμοποιήσω καρτέλες οριζόντιες και κάθετες με τον ακόλουθο τρόπο:
Στη γραμμή εργαλείων επέλεξα Δημιουργία > Περιήγηση > Οριζόντιες καρτέλες.
Έτσι δημιουργήθηκε μιά φόρμα περιήγησης. Σε αυτή, σε προβολή διάρθρωσης, τοποθέτησα
διάφορες σχετιζόμενες φόρμες.
Καθ' όμοιο τρόπο δημιούργησα άλλη φόρμα περιήγησης με κάθετες καρτέλες κλπ.

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

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


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

Σε κάθε περίπτωση, σ' ευχαριστώ γιά την ενασχόλησή σου με το θέμα μου.

vraxnakisg 24-04-19 13:37

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

Συγνώμη για την καθυστέρηση της απαντήσεως μου.

"Αν και δεν συμφωνώ με τον τρόπο που πας να φτιάξεις την διαχείρισή των φορμών"
Δες το αρχειο.

Πρώτα από όλα να σου πω ότι έχω αλλάξει τα ονόματα των φορμών για ευκολία στον κώδικα.

Έχω φτιάξει δυο Function την test και test1 κάνουν ακριβώς το ίδιο πράγμα αλλά η διαφορά τους είναι στον κώδικα.
Το πρόβλημα στο να μεταχειριστείς ένα αντικείμενο που είναι πάνω σε ένα άλλο αντικείμενο θα πρέπει να ορίσεις την πλήρη διαδρομή του αντικειμένου π.χ. Main!MangForm!SubFormExplor![ID] .

Παρατήρησε όταν έχεις επιλέξει την καρτέλα Form1 και πατήσεις το cmd1 θα δεις ότι ανοίγει η φόρμα frmFinal εκτελώντας την ρουτίνα test και αφού την κλείσεις ανοίγει ξανά εκτελώντας την ρουτίνα test1.

Αν το ζητούμενο σου είναι να ανοίγει η φόρμα frmFinal από οποιαδήποτε φόρμα στην φόρμα περιηγήσεις και να σου παρουσιάζει την τρέχουσα εγγραφή πιστεύω ότι σε καλύπτει η Function test1
.
Μελέτησε τον κώδικα και αν θέλεις οτιδήποτε είμαι στην διάθεση σου.

Ευχαριστώ.

dimitrisp 24-04-19 20:49

Καλησπέρα

Γιώργο, σε υπερευχαριστώ γιά τη βοήθειά σου.
Η πρότασή σου με κάλυψε επαρκώς. Θα προσαρμόσω ανάλογα τον κώδικα και θα επανέλθω.

Ωστόσο, με προβλημάτισες διότι δε συμφωνείς με τον τρόπο που προτίθεμαι να διαχειριστώ τις Φόρμες.
Τι άλλο θα μπορούσα να κάνω? Σκέφτηκα να κάνω σελιδοδείκτες. Αλλά, νομίζω, είναι το ίδιο περίπου πράγμα.
Συμπερασματικά, προσπαθώ να ταξινομήσω τις φόρμες κατά ομάδες με τις αντίστοιχες υποομάδες
έτσι ώστε, όταν επιλέγω μιά γενική ομάδα να μπορώ, στη συνέχεια,
να επιλέγω κάποια από τις σχετιζόμενες με αυτή υποομάδα.

Αν δεν κάνω κατάχρηση, θα είχες την καλοσύνη να προτείνεις κάτι διαφορετικό?

γιώργοςΚ 25-04-19 09:26

Παράθεση:

Αρχική Δημοσίευση από dimitrisp (Μήνυμα 29484)
Καλησπέρα

Γιώργο, σε υπερευχαριστώ γιά τη βοήθειά σου.
Η πρότασή σου με κάλυψε επαρκώς. Θα προσαρμόσω ανάλογα τον κώδικα και θα επανέλθω.

Ωστόσο, με προβλημάτισες διότι δε συμφωνείς με τον τρόπο που προτίθεμαι να διαχειριστώ τις Φόρμες.
Τι άλλο θα μπορούσα να κάνω? Σκέφτηκα να κάνω σελιδοδείκτες. Αλλά, νομίζω, είναι το ίδιο περίπου πράγμα.
Συμπερασματικά, προσπαθώ να ταξινομήσω τις φόρμες κατά ομάδες με τις αντίστοιχες υποομάδες
έτσι ώστε, όταν επιλέγω μιά γενική ομάδα να μπορώ, στη συνέχεια,
να επιλέγω κάποια από τις σχετιζόμενες με αυτή υποομάδα.

Αν δεν κάνω κατάχρηση, θα είχες την καλοσύνη να προτείνεις κάτι διαφορετικό?

Δημήτρη καλημέρα,

Θα μπορούσες να χρησιμοποιήσεις εναλλακτικά τις φόρμες Navication, αυτό εκτός ότι θα σε βγάλει απο διάφορα θέματα κώδικα, ειναι και πιο όμορφες σχεδιαστικά και λειτουργοϋν άψογα. Βέβαια υπάρχουν και άλλες πολλές λύσεις για να κάνεις αυτό που θέλεις αλλά απαιτούν ώρες (πολλές) και κώδικα (αρκετό) έτσι ώστε να τις φέρεις στα ϊσα τους και να λειτουργούν και να φαίνονται όπως πρέπει.

Αυτά απο εμένα, μιας και είδα το θέμα.

dimitrisp 20-05-19 11:01

Γειά σας

Ζητώ συγγνώμη γαι την εκπρόθεσμη απάντηση που όφειλα να δώσω.
Αλλά, "Κάλλιο αργά, παρά ποτέ", όπως λέει και ο θυμόσοφος λαός!

1. Γιώργο(vraxnakisg), προσάρμοσα την πρότασή σου στη βάση μου με άριστα αποτελέσματα.
Η βοήθεια σου ήταν εξαιρετική για μένα!
Σε ευχαριστώ για ακόμη μιά φορά.

2. Γιώργο(γιώργοςΚ), η φόρμα που ανέβασα είναι τύπου Navigation. Έκανα κάποιες τροποποιήσεις
και λειτουργεί άψογα.(ή, τέλος πάντων, όπως θα ήθελα να είναι...)
Σε ευχαριστώ για τις προτεινόμενες οδηγίες σου.

Καλή συνέχεια..


Η ώρα είναι 21:14.

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


Search Engine Optimization by vBSEO 3.3.2