Σελ. 1 από 2 12 ΤελευταίαΤελευταία
Εμφάνιση 1-15 από 21
  1. #1
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    Καλημέρα σε όλους,

    Πρώτη φορά χρησιμοποιώ access και έχω μία ερώτηση:

    Έχω δημιουργήσει μία βάση με 6 πίνακες, και 6 φόρμες για κάθε ένα από τους πίνακες.

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

    Ελπίζω να είναι κατανοητή η ερώτηση. Όποια βοήθεια ευπρόσδεκτη

  2. #2
    Εγγραφή
    17-01-2006
    Μηνύματα
    2.030
    Downloads
    9
    Uploads
    0
    Τύπος
    ADSL
    Ταχύτητα
    Πότε Πάνω / Πό
    ISP
    Wind
    Router
    NetFaster IAD
    Βασικά αυτό που πρέπει να μάθεις (και όχι μόνο αποσπασματικά είναι λιγο θεωρία βάσεων δεδομένων και κλειδιών βάσης (πρωτευοντα - δευτερέυοντα (primary, foreign keys)) τότε θα μπορέσεις να δεις πόσο εύκολο είναι να προσδιορίσεις δεδομένα ενός πράγματος σε πολλύς πίνακες μιας βδ.
    Sent From My Computer Using Firefox

  3. #3
    Εγγραφή
    25-04-2007
    Ηλικία
    56
    Μηνύματα
    162
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    16384/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΘΗΝΑΣ
    Router
    Pirelli
    Αυτό που θέλεις δεν γίνεται με ανεξάρτητες φόρμες.
    Ένας τρόπος είναι να βάλεις μία φόρμα με τα στοιχεία που θέλεις να δεις σαν "υποφόρμα" στην φόρμα των πελατών και να συδέσεις τις δύο (δηλ. κύρια & υποφόρμα) στο πεδίο του πελάτη (κωδικό ή όνομα , ότι έχεις).
    Έτσι όταν επιλέγεις πελάτη στην κύρια φόρμα, η υποφόρμα θα δείχνει τις εγγραφές για τον επιλεγμένο πελάτη.
    Αν ανοίξεις την φόρμα σε Design θα δεις το ειδικό control για υποφόρμες, το βάζεις στην φόρμα σου και μετά παρουσιάζεται wizard που θα σε καθοδηγήσει σε ότι χρειάζεται.
    Υπάρχουν και άλλοι τρόποι, αλλά απαιτούν πιο περίπλοκη εκτέλεση και περισσότερες γνώσεις.

  4. #4
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    vasim, έχω γνώσεις σχετικά με βάσεις δεδομένων. ΟΙ συσχετίσεις έχουν γίνει μεταξύ των πινάκων. Το πρόβλημα είναι να καταφέρω να εμφανίζονται τα αποτελέσματα του Sql ερωτήματος σε 6 διαφορετικές φόρμες.

    Gitane, έχω δει ένα παράδειγμα με υποφόρμες. Σε ευχαριστώ πολύ για την προσπάθεια, αλλά δεν γίνεται στην περίπτωση μου να χωρέσουν τόσα δεδομένα από τόσους πίνακες σε μία υποφόρμα.

    Θα εξηγήσω λίγο καλύτερα τι θέλω να κάνω μήπως και βοηθήσει:

    Έχω ένα πελάτη, και θέλω σε ένα πίνακα να αποθηκεύονται δεδομένα σχετικά με τα προσωπικά του στοιχεία. σε άλλο πίνακα τα οικονομικά, κτλ.
    θέλω τώρα σε μία αρχική φόρμα, να θέτω το ΑΦΜ του πελάτη, και να "φορτώνονται" σε όλες τις φόρμες (δηλαδή στα οικονομικά στοιχεία, στα προσωπικά κτλ) τα στοιχεία του κάθε πελάτη.

    gitane, οι άλλες λύσεις που υπάρχουν μήπως περιέχουν και VB?

    Αν έκανα 6 διαφορετικά SQL ερωτήματα, τα οποία θα παίρνουν το ΑΦΜ και θα το εμφανίζουν το καθένα σε κάθε φόρμα το αποτέλεσμα, θα ήταν σωστό; Μπορεί να γίνει;

  5. #5
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Υποθέτοντας ότι το ΑΦΜ είναι το κλειδί σε όλες τις φόρμες τότε θα πρέπει στο AfterUpdate event του textbox όπου εισάγεται το ΑΦΜ στην 1η φορμα να προσθέσεις κώδικα VBA για να "γυρίζουν"αυτόματα όλες οι φόρμες.
    Αν θυμάμαι καλά και υποθέτωντας ότι:
    Οι φόρμες είναι Form1, Form2, Form3 κτλ. Το πεδίο είναι το AFM (text). Το textbox στην κύρια φόρμα είναι το txtFindAFM...
    ο κώδικας στο Private Sub txtFindAFM_AfterUpdate είναι:
    Κώδικας:
    Forms!Form2.Recordset.FindFrst "AFM='" & txtFindAFM & "'"
    Forms!Form3.Recordset.FindFrst "AFM='" & txtFindAFM & "'"
    Τελευταία επεξεργασία από το μέλος yiapap : 06-05-11 στις 14:10. Αιτία: auto merged post
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  6. #6
    Εγγραφή
    25-04-2007
    Ηλικία
    56
    Μηνύματα
    162
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    16384/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΘΗΝΑΣ
    Router
    Pirelli
    Αλλιώς, μπορείς να βασίσεις τις υπόλοιπες φόρμες σε queries, όπου στο πεδίο του ΑΦΜ θα βάλεις κριτήριο το πεδίο ΑΦΜ της φόρμας 1:

    Κώδικας:
    [Forms]![Form1]![txtFindAFM]
    Μετά το μόνο που πρέπει να κάνεις στην ρουτίνα Sub txtFindAFM_AfterUpdate είναι:
    Κώδικας:
    Form2.Requery
    Form3.Requery
    .....
    Όπως είπα υπάρχουν πολλές παραλλαγές, δοκίμασε ποια σε βολεύει.

  7. #7
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από gitane Εμφάνιση μηνυμάτων
    Αλλιώς, μπορείς να βασίσεις τις υπόλοιπες φόρμες σε queries, όπου στο πεδίο του ΑΦΜ θα βάλεις κριτήριο το πεδίο ΑΦΜ της φόρμας 1:

    Κώδικας:
    [Forms]![Form1]![txtFindAFM]
    Μετά το μόνο που πρέπει να κάνεις στην ρουτίνα Sub txtFindAFM_AfterUpdate είναι:
    Κώδικας:
    Form2.Requery
    Form3.Requery
    .....
    Όπως είπα υπάρχουν πολλές παραλλαγές, δοκίμασε ποια σε βολεύει.
    Σωστό.
    Επίσης μπορείς να ορίσεις το txtAFM ως φίλτρο στις άλλες φόρμες
    Κώδικας:
    Forms!Form2.Filter="AFM='" & txtAFM "'"
    Forms!Form2.Requery
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  8. #8
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    Σας ευχαριστώ πάρα πολύ για την βοήθεια, δεν απάντησα νωρίτερα γιατί λόγω έκτακτων περιστατικών την άφησα την βάση.

    Τέλος πάντων, τώρα προσπαθώ να την κάνω. Ακολούθησα την πρώτη μέθοδο, αυτή που κάνει χρήση της ιδιότητας Recordset.
    Δεν ξερω αν τελικα εσεις προτείνετε κάποια από τις άλλες δύο ως καλύτερη λύση, δεν υπάρχει κάποιος συγκεκριμένος λόγος που επέλεξα αυτή τη λύση έναντι των άλλων.
    Το πρόβλημα ειναι οτι δεν 'γυρίζουν' οι φόρμες.
    Και επειδή δεν έχω επαφή καθόλου ακόμα με την access, δεν μπορώ να βρω το γιατί.

    Εχω επισυνάψει το αρχείο της Access στο μήνυμα, μήπως και βοηθήσει στην εξεύρεση λύσης.

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

    Μπορεί κάποιος να με βοηθήσει;
    Attached Files Attached Files

  9. #9
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    Γεια, δοκιμάζω όλους τους τρόπους που προτείνατε. Το κακο ειναι οτι ειμαι ασχετος με την access και κολλάω στο παραμικρό.
    Ακούστε τώρα πρόβλημα. Δοκιμάζω τη λύση με τα queries, και θετω ως κριτήριο στο πεδιο του ΑΦΜ το πεδίο ΑΦΜ της φόρμας 1. Ομως εμφανιζεται ενα pop-up παραθυρο με τίτλο [Forms]![Form1]![txtFindAFM]

    Προφανώς αυτό ειναι κάποια ενσωματωμένη λειτουργία της access. Αλλα εγώ δεν θέλω αυτο. Θέλω απλα να χρησιμοποιώ το textbox για να μπαίνει το ΑΦΜ του πελατη που αναζητάμε. Μπορεί κάποιος να με βοηθήσει; Γιατι έκανα ακριβώς αυτά που λέει το μήνυμα. Και βρίσκομαι σε απελπισία καλοκαιριάτικα

  10. #10
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παράθεσε τον κώδικα SQL

    <edit>
    Επίσης το πεδίο AFM λογικά είναι text. Άρα στον κώδικα πρέπει να γράψεις κάτι σαν:
    WHERE Customers.AFM= "'" & Forms!Form1!txtAFM & "'"
    δηλαδή να "περικλείσεις" την τιμή του txtAFM γύρω από single quotes '
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  11. #11
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    Η χαρά του sql injection.


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  12. #12
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    Ορίστε ο κώδικας SQL:

    Κώδικας:
    SELECT [BASIKA STOIXEIA].ARITHMOS_FAKELOU, [BASIKA STOIXEIA].AFM, [BASIKA STOIXEIA].DOY, [BASIKA STOIXEIA].[KODIKOS DOY], [BASIKA STOIXEIA].EPONYMIA, [BASIKA STOIXEIA].EPONYMO, [BASIKA STOIXEIA].ONOMA, [BASIKA STOIXEIA].PATRONYMO, [BASIKA STOIXEIA].DIEYTHINSH, [BASIKA STOIXEIA].ARITHMOS, [BASIKA STOIXEIA].POLH, [BASIKA STOIXEIA].TK, [BASIKA STOIXEIA].XORA, [BASIKA STOIXEIA].THLEFONO1, [BASIKA STOIXEIA].THLEFONO2, [BASIKA STOIXEIA].KINHTO, [BASIKA STOIXEIA].FAX, [BASIKA STOIXEIA].EMAIL, [BASIKA STOIXEIA].BIRTHDATE, [BASIKA STOIXEIA].TAYTOTHTA, [BASIKA STOIXEIA].DIABATHRIO, [BASIKA STOIXEIA].ARITHMOSTAYTOTHTAS, [BASIKA STOIXEIA].PUBLISHEDDATE, [BASIKA STOIXEIA].EKDARXH
    FROM [BASIKA STOIXEIA]
    WHERE ((([BASIKA STOIXEIA].AFM)=[Forms]![ARXIKH]![txtFindAFM]));
    δηλαδή να "περικλείσεις" την τιμή του txtAFM γύρω από single quotes '
    Αυτό θα το κάνω για να μην πετάγεται το pop-up;

  13. #13
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από Thuglife Εμφάνιση μηνυμάτων
    Η χαρά του sql injection.
    ??? Ποιός θα κάνει inject?

    Παράθεση Αρχικό μήνυμα από gantzinis Εμφάνιση μηνυμάτων
    Ορίστε ο κώδικας SQL:

    Κώδικας:
    SELECT [BASIKA STOIXEIA].ARITHMOS_FAKELOU, [BASIKA STOIXEIA].AFM, [BASIKA STOIXEIA].DOY, [BASIKA STOIXEIA].[KODIKOS DOY], [BASIKA STOIXEIA].EPONYMIA, [BASIKA STOIXEIA].EPONYMO, [BASIKA STOIXEIA].ONOMA, [BASIKA STOIXEIA].PATRONYMO, [BASIKA STOIXEIA].DIEYTHINSH, [BASIKA STOIXEIA].ARITHMOS, [BASIKA STOIXEIA].POLH, [BASIKA STOIXEIA].TK, [BASIKA STOIXEIA].XORA, [BASIKA STOIXEIA].THLEFONO1, [BASIKA STOIXEIA].THLEFONO2, [BASIKA STOIXEIA].KINHTO, [BASIKA STOIXEIA].FAX, [BASIKA STOIXEIA].EMAIL, [BASIKA STOIXEIA].BIRTHDATE, [BASIKA STOIXEIA].TAYTOTHTA, [BASIKA STOIXEIA].DIABATHRIO, [BASIKA STOIXEIA].ARITHMOSTAYTOTHTAS, [BASIKA STOIXEIA].PUBLISHEDDATE, [BASIKA STOIXEIA].EKDARXH
    FROM [BASIKA STOIXEIA]
    WHERE ((([BASIKA STOIXEIA].AFM)=[Forms]![ARXIKH]![txtFindAFM]));

    Αυτό θα το κάνω για να μην πετάγεται το pop-up;
    Το σωστό είναι:
    Κώδικας:
    ...
    WHERE ((([BASIKA STOIXEIA].AFM)= "'" & [Forms]![ARXIKH]![txtFindAFM] & "'"
    ...
    Επίσης επαλήθευσε ότι πράγματι το όνομα της φόρμας σου είναι [ARXIKH]
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  14. #14
    Εγγραφή
    08-03-2007
    Μηνύματα
    95
    Downloads
    7
    Uploads
    0
    ΥiapΥiap χιλια ευχαριστώ για την απάντηση. Αλλα και πάλι βγαίνει αυτο το αναθεματισμένο το pop-up. Σκεφτομαι ότι δεν ειναι κομψο να πετάγονται pop-up και τέτοια. Εγω απλά θέλω να έχει ένα text-box για search, εκεί μεσα να βάζει το ΑΦΜ του πελάτη, και αν τελικα το ΑΦΜ υπάρχει να γυρίζουν οι υπόλοιπες φόρμες.

    Αλλα το pop-up επιμένει. Υπάρχει κατι άλλο που μπορω να κάνω;

    Επίσης, μήπως για να γυρίζουν οι φόρμες χρειάζεται να προσθέσω κάποιο κουμπί; Η το requery ειναι αρκετό;


    Η χαρά του sql injection.

    ??? Ποιός θα κάνει inject?
    Αυτο ακριβως πιστευω και εγω.

    Σου επισυνάπτω το αρχείο,μήπως βοηθήσει την κατάσταση.
    Attached Files Attached Files
    Τελευταία επεξεργασία από το μέλος gantzinis : 29-06-11 στις 21:13.

  15. #15
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    1. Η φόρμα πρέπει να είναι ανοιχτή και η τιμή του ΑΦΜ συμπληρωμένη ώστε να δουλέψει το query. Εδώ πρέπει επίσης να προσέξεις το ΠΟΤΕ η τιμή στο textbox ενημερώνεται. Για να "πάρει" η φόρμα την τιμή που πληκτρολογείς ή πρέπει να κάνεις save record ή τουλάχιστον να μετακινηθείς εκτός του αντικειμένου στο οποίο αλλάζεις την τιμή (με TAB ή click σε άλλο αντικείμενο). Στη φόρμα που έχεις υπα΄ρχει μόνο το textbox και άρα... δεν μπορείς να μετακινηθείς! Βάλε ένα κουμπί και δώσε στον κώδικα Click() DoCmd.OpenQuery "blahblah" (το όνομα του query που διαβάζει τη φόρμα)
    2. Όταν σε όλα τα αντικείμενα δίνεις το ίδιο όνομα... θα δυσκολευτείς μετά να συντηρήσεις τον κώδικα
    3. Το AΦΜ στον πίνακα το είχες δηλώσει ως αριθμό που είναι λάθος γιατί πολλά ΑΦΜ ξεκινάνε από 0 άρα δεν θα μπορέσεις να δουλέψεις έτσι.
    4. Τα "'" που πρότεινα δεν φαίνεται να δουλεύουν στην ACC2007 ακόμη και σε text πεδία. Δοκίμασε και με και χωρίς εισαγωγικά.
    5. Το Requery είναι αρκετό όταν αλλάζει το DataSource
    Attached Files Attached Files
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

Σελ. 1 από 2 12 ΤελευταίαΤελευταία

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

  1. Μηνύματα: 0
    Τελευταίο Μήνυμα: 11-10-10, 10:34
  2. Εμφάνιση αποτελεσμάτων στην αναζήτηση
    Από Kotsolis στο φόρουμ Η Γνώμη σας
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 21-02-09, 14:18
  3. smplayer και εμφάνιση chapter στην οθόνη
    Από delta9 στο φόρουμ Unix - Linux
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 02-02-09, 13:34
  4. Ομορφη εμφανιση εγγραφης μεσω απλου HTML
    Από mookie στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 22-06-07, 23:30
  5. 4 MB jpegs και δυσκολιες στην εμφανιση τους..
    Από Vadur στο φόρουμ Audio, Video και Φωτογραφία
    Μηνύματα: 6
    Τελευταίο Μήνυμα: 27-03-04, 18:57

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας