Σελ. 1 από 2 12 ΤελευταίαΤελευταία
Εμφάνιση 1-15 από 19
  1. #1
    Εγγραφή
    14-09-2004
    Μηνύματα
    387
    Downloads
    0
    Uploads
    0
    Εχω μια βάση δεδομένων Access με 2 Πϊνακες. Ο πρώτος ονομάζεται προμηθευτές και περιέχει τα στοιχεία τους με πεδία όπως ΑΦΜ, Ονομασία, Δ/νση, Τηλ κλπ. Ο 2ος περιέχει τιμολόγια που έχουν εκδοθεί από τους προμηθευτές και έχει τα πεδία ΑΦΜ, αρ τιμολ, ημερομηνία, ποσό. Οι δύο πίνακες συνδέονται με το πεδίο ΑΦΜ.

    Αυτό που θέλω είναι να φτιάξω μια φόρμα ενημέρωσης του 2ου πίνακα με τα εξής στοιχεία
    1. Πεδίο εισόδου ΑΦΜ, όπου θα ελεγχεται αν υπάρχει το ΑΦΜ στον 1ο πίνακα ή εναλακτικά μέσω λίστας να σου επιτρέπει να επιλέξεις μονο ΑΦΜ που υπάρχουν.
    2,3,4 Πεδία στα οποία δεν θα επιτρέπεται εγγραφή και θα παρουσιάζονται τα στοιχεία του προμηθευτή (Ονομασία Δ.νση κλπ) του οποίου το ΑΦΜ επιλέχθηκε.
    5,6,7 Πεδία που θα καταχωρώ τα υπόλοιπα στοιχεία του Πίνακα.

    Μπορεί κανείς να βοηθήσει για το πώς μπορουν να φτιαχθούν τα πρώτα 4 πεδία. Με ποιές ιδιότητες δηλαδή τα διάφορα Text box θα έχουν τέτοια λειτουργία? Η βάση Northwind που έχει σαν υπόδειγμα η MS έχει τέτοιες δυνατότητες αλλα δεν μπορώ να δω πως υλοποιούνται.

    Γνωρίζει κανείς κάποιο βιβλίο ή ακόμα καλύτερα κάποιο site με τέτοιου τύπου περιέχόμενο? γιατι τα περισσότερα που βρίσκω σχετικά με Access αναφέρονται στα πολύ στοιχειώδη.

  2. #2
    Εγγραφή
    25-04-2007
    Ηλικία
    56
    Μηνύματα
    162
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    16384/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΘΗΝΑΣ
    Router
    Pirelli
    Ο πιο απλός τρόπος να απαγορεύσεις εγγραφή, είναι να βάλεις την ιδιότητα "Locked" του αντίστοιχου textBox σε "Yes" - αν το textBox είναι συνδεδεμένο (bound) στον πίνακα.

    Πιο περίπλοκος τρόπος είναι να έχεις ελεύθερα textBox , τα οποία γεμίζεις προγραμματιστικά με κώδικα που τρέχει σε αλλαγή επιλεγμένης εγγραφής - πιο ευαίσθητο σε "σκασίματα", αλλά με 100% προστασία των στοιχείων του πίνακα προμηθευτών.

  3. #3
    Εγγραφή
    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. Combo box bound στο πεδίο ΑΦΜ του 2ου πίνακα και Datasource SELECT AFMFrom Προμηθευτές SORT BY ΑΦΜ
    + ιδιότητα Limit to list = Yes
    2,3,4 Αυτό που λέει ο gitane

    Μπορείς επίσης να φτάξεις φόρμα υποφόρμα. Η κύρια φόρμα είναι οι προμηθευτές η υποφόρμα είναι τα τιμολόγια. Δοκίμασέ το γιατί νομίζω ότι είναι η καλύτερη λύση. Οι άλλες λύσεις θα απαιτήσουν και κώδικα (π.χ. αν προσθέσεις έναν προμηθευτή πρέπει να κάνεις Requery το Combobox για να δεις το νέο ΑΦΜ).
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  4. #4
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+
    καταρχην η επιλογη ΑΦΜ για PK ειναι λαθος οπως επισης και FK ...
    αυτο που ζητας γινετε με foreign keys στις κανονικες σχεσιακες βασεις πολυ απλα.
    απορω ενω υπαρχουνε public domain embedded dbs (sqlite) αλλα και open src γιατι ασχολείστε με access..

  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
    Γιατί το ΑΦΜ είναι λάθος; Επειδή είναι text πεδίο;
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  6. #6
    Εγγραφή
    01-06-2008
    Ηλικία
    52
    Μηνύματα
    1.404
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    8192/512
    ISP
    Forthnet
    DSLAM
    Forthnet - Ν. ΣΜΥΡΝΗ
    SNR / Attn
    8(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από yiapap Εμφάνιση μηνυμάτων
    Γιατί το ΑΦΜ είναι λάθος; Επειδή είναι text πεδίο;
    Γενικά είναι λάθος πρακτική να βάζουμε πεδία που έχουν ουσιαστική σημασία ως PK (και ως FK). Τα πεδία PK πρέπει να είναι χωρίς σημασία. Παλιότερα ένας απλός ΑΑ ενώ τώρα συνηθίζεται να είναι GUID, που έχει πολλά πλεονεκτήματα.

    Αυτό συμβαίνει γιατί τα πεδία με ουσιαστική σημασία μπορεί να αλλάξουν (για το ΑΦΜ μπορεί π.χ. να έχει πληκτρολογηθεί λάθος και να χρειαστεί να αλλάξει). Αν είναι PK ή FK δεν μπορεί να αλλάξει και πρέπει να γίνουν update όλα τα references σε αυτό.

  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
    Παράθεση Αρχικό μήνυμα από MichaelSE Εμφάνιση μηνυμάτων
    Αυτό συμβαίνει γιατί τα πεδία με ουσιαστική σημασία μπορεί να αλλάξουν (για το ΑΦΜ μπορεί π.χ. να έχει πληκτρολογηθεί λάθος και να χρειαστεί να αλλάξει). Αν είναι PK ή FK δεν μπορεί να αλλάξει και πρέπει να γίνουν update όλα τα references σε αυτό.
    Στην Access μπορεί να αλλάξει και η αλλαγή θα περάσει (cascading update) σε όλους τους πίνακες που χρησιμοποιούν το πεδίο ως FK
    Επίσης το ΑΦΜ δύσκολα μπορεί να πληκτρολογηθεί λάθος με δεδομένο ότι υπάρχει αλγόριθμος ελέγχου εγκυρότητας ο οποίος θα πιάσει το λαθάκι.
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  8. #8
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+
    με το κανεις PΚ/FK το ΑΦΜ μπλεκεις τη λειτουργια με τα δεδομενα της βασης.
    επισης text πεδια δεν κανουνε για FK/PK δεν μπορει να γινει αποδοτικο indexing κτλπ
    Το καλύτερο ειναι 1 surrogate key

  9. #9
    Εγγραφή
    01-06-2008
    Ηλικία
    52
    Μηνύματα
    1.404
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    8192/512
    ISP
    Forthnet
    DSLAM
    Forthnet - Ν. ΣΜΥΡΝΗ
    SNR / Attn
    8(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από yiapap Εμφάνιση μηνυμάτων
    Στην Access μπορεί να αλλάξει και η αλλαγή θα περάσει (cascading update) σε όλους τους πίνακες που χρησιμοποιούν το πεδίο ως FK
    Επίσης το ΑΦΜ δύσκολα μπορεί να πληκτρολογηθεί λάθος με δεδομένο ότι υπάρχει αλγόριθμος ελέγχου εγκυρότητας ο οποίος θα πιάσει το λαθάκι.
    Γενικώς, με τα PKs με νόημα (γενικά μιλώντας - όχι μόνο για το ΑΦΜ) υπάρχουν πολλά προβλήματα, πέρα από αυτά που ανέφερα, και προβλήματα που δεν μπορείς να τα προβλέψεις στην αρχή. Π.χ. τι θα γίνει αν ο πελάτης δεν έχει ΑΦΜ (πελάτης λιανικής π.χ). Ή αν έστω θέλεις να καταχωρήσεις τον προμηθευτή (που έχει οπωσδήποτε ΑΦΜ) προσωρινά με το ΑΦΜ αναφοράς για να το συμπληρώσεις αργότερα με το σωστο; Ή αν αλλάξει ο αλγόριθμος για τους ΑΦΜ και επαναχρησιμοποιηθεί σε κάποιον άλλον μετά το κλείσιμο π.χ. μίας εταιρείας. Ή να προστεθεί ένα ψηφίο μπροστά σε όλους (όπως έγινε σχετικά πρόσφατα); Ή γενικώς σε 5 χρόνια π.χ. να αλλάξει τελείως το σύστημα με το ΑΦΜ και ενοποιηθούν π.χ. όλοι οι αριθμοί; (ΑΦΜ - ΑΜΚΑ - ΑΤ και ό,τι άλλο μπορεί αν φανταστεί ο καθένας).

    Για όλα αυτά τα θέματα είναι καλό να διαλέγεις PK χωρίς σημασία. Εκεί δεν έχεις να σκεφτείς τίποτα. Το μόνο μειονέκτημα είναι λίγο παραπάνω χώρος στη DB. Νομίζω μικρό τίμημα σε σχέση με αυτά που κερδίζεις.

  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
    Παράθεση Αρχικό μήνυμα από mpetou Εμφάνιση μηνυμάτων
    με το κανεις PΚ/FK το ΑΦΜ μπλεκεις τη δομη με τα δεδομενα της βασης
    Στη θεωρία Βάσεων Δεδομένων πάντως δεν θυμάμαι τέτοιο directive. Βέβαια εγώ είμαι αρχαίος και μπορεί κάτι να έχει αλλάξει. Υπάρχει κάποιο ακαδημαϊκό reference για το παραπάνω;
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  11. #11
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+
    δες τα βιβλια του joe celko
    και αυτο του 99 το λεει και τα ποιο καινουργια
    επισης λεει οτι σε περιπτωση που δεν εχουμε να κανουμε με κατανεμημενη βαση
    η καλυτερη επιλογη ειναι auto increment / serial κτλπ

  12. #12
    Εγγραφή
    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
    Παράθεση Αρχικό μήνυμα από MichaelSE Εμφάνιση μηνυμάτων
    Γενικώς, με τα PKs με νόημα (γενικά μιλώντας - όχι μόνο για το ΑΦΜ) υπάρχουν πολλά προβλήματα, πέρα από αυτά που ανέφερα, και προβλήματα που δεν μπορείς να τα προβλέψεις στην αρχή. Π.χ. τι θα γίνει αν ο πελάτης δεν έχει ΑΦΜ (πελάτης λιανικής π.χ). Ή αν έστω θέλεις να καταχωρήσεις τον προμηθευτή (που έχει οπωσδήποτε ΑΦΜ) προσωρινά με το ΑΦΜ αναφοράς για να το συμπληρώσεις αργότερα με το σωστο; Ή αν αλλάξει ο αλγόριθμος για τους ΑΦΜ και επαναχρησιμοποιηθεί σε κάποιον άλλον μετά το κλείσιμο π.χ. μίας εταιρείας. Ή να προστεθεί ένα ψηφίο μπροστά σε όλους (όπως έγινε σχετικά πρόσφατα); Ή γενικώς σε 5 χρόνια π.χ. να αλλάξει τελείως το σύστημα με το ΑΦΜ και ενοποιηθούν π.χ. όλοι οι αριθμοί; (ΑΦΜ - ΑΜΚΑ - ΑΤ και ό,τι άλλο μπορεί αν φανταστεί ο καθένας).

    Για όλα αυτά τα θέματα είναι καλό να διαλέγεις PK χωρίς σημασία. Εκεί δεν έχεις να σκεφτείς τίποτα. Το μόνο μειονέκτημα είναι λίγο παραπάνω χώρος στη DB. Νομίζω μικρό τίμημα σε σχέση με αυτά που κερδίζεις.
    Στον πελάτη λιανικής δίνεις ένα εικονικό ΑΦΜ (0000000000). Τις υπόλοιπες ενημερώσεις που λες τις κάνεις κανονικά όπως σε οποιοδήποτε πεδίο με το πρόσθετο πλεονέκτημα που ανάφερα ότι αν χρησιμοποιείς το ΑΦΜ ως κλειδί κάνεις την ενημέρωση στον βασικό πίνακα και αυτή αυτόματα ενημερώνει όλους τους συνδεδεμένους.

    Καταλαβαίνω τη λογική και δεν λέω ότι διαφωνώ απαραίτητα, απλά περιγράφω την άλλη όψη του νομίσματος
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  13. #13
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+
    θα το συζητουσαμε για κατανεμημενη βαση αλλα γι αυτη την περιπτωση
    δεν σωστο ασε που το text key ειναι αντιαποδοτικο

  14. #14
    Εγγραφή
    01-06-2008
    Ηλικία
    52
    Μηνύματα
    1.404
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    8192/512
    ISP
    Forthnet
    DSLAM
    Forthnet - Ν. ΣΜΥΡΝΗ
    SNR / Attn
    8(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από yiapap Εμφάνιση μηνυμάτων
    Στη θεωρία Βάσεων Δεδομένων πάντως δεν θυμάμαι τέτοιο directive. Βέβαια εγώ είμαι αρχαίος και μπορεί κάτι να έχει αλλάξει. Υπάρχει κάποιο ακαδημαϊκό reference για το παραπάνω;
    Κι εγώ δεν θυμάμαι τέτοιο directive στη θεωρία Βάσεων Δεδομένων. Όλα αυτά που σου είπα είναι από γενικά guidelines που προκύπτουν από προβλήματα στη βάση όταν είναι σχεδιασμένη με αυτόν τον τρόπο που αναφέρεις. Μάλιστα παλιότερα υπήρχε όντως αυτή η πρακτική. Δες π.χ. εδώ.

    Παράθεση Αρχικό μήνυμα από yiapap Εμφάνιση μηνυμάτων
    Στον πελάτη λιανικής δίνεις ένα εικονικό ΑΦΜ (0000000000). Τις υπόλοιπες ενημερώσεις που λες τις κάνεις κανονικά όπως σε οποιοδήποτε πεδίο με το πρόσθετο πλεονέκτημα που ανάφερα ότι αν χρησιμοποιείς το ΑΦΜ ως κλειδί κάνεις την ενημέρωση στον βασικό πίνακα και αυτή αυτόματα ενημερώνει όλους τους συνδεδεμένους.

    Καταλαβαίνω τη λογική και δεν λέω ότι διαφωνώ απαραίτητα, απλά περιγράφω την άλλη όψη του νομίσματος
    Συμφωνώ, αλλά αν π.χ. ο ίδιος πελάτης έρθει την άλλη μέρα και σου ζητήσει τιμολόγιο αντί απόδειξη; Και σου λέω, φυσικά υπάρχουν λύσεις για όλα, software είναι, αλλά γιατί να μπεις σε τέτοιες διαδικασίες και να μην το φτιάξεις έτσι από την αρχή; Το ID χωρίς νόημα δεν θα αλλάξει ποτέ εγγυημένα, άρα δεν θα μπεις ούτε καν στη διαδικασία του cascading update.

    ........Auto merged post: MichaelSE πρόσθεσε 82 λεπτά και 59 δευτερόλεπτα αργότερα ........

    Παράθεση Αρχικό μήνυμα από mpetou Εμφάνιση μηνυμάτων
    θα το συζητουσαμε για κατανεμημενη βαση αλλα γι αυτη την περιπτωση
    δεν σωστο ασε που το text key ειναι αντιαποδοτικο
    Θεωρώ ότι ακόμα και σε κατανεμημένη βάση δεν είναι καλή πρακτική πεδιά με business meaning ως PKs. Σε εκείνη την περίπτωση το καλύτερο, κατά την άποψή μου είναι GUID που λύνει και τα προβλήματα του auto increment σε distributed dbs. Βέβαια ακόμα και σε τοπική βάση πιστεύω ότι το GUID λύνει προβλήματα όπως migrations και γενικότερα μεταφορές δεδομένων. Απλά πιάνει λίγο παραπάνω χώρο. Και χρειάζεται κάποια παραπάνω διαχείριση σε βάσεις που δεν το υποστηρίζουν απευθείας ακόμα.
    Τελευταία επεξεργασία από το μέλος MichaelSE : 24-08-11 στις 13:30. Αιτία: auto merged post

  15. #15
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+

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

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

  1. access point ερωτηση
    Από ababapanos στο φόρουμ Wireless Networking
    Μηνύματα: 10
    Τελευταίο Μήνυμα: 30-06-19, 09:32
  2. Ερώτηση σε MS Access
    Από bomberb17 στο φόρουμ Software γενικά
    Μηνύματα: 5
    Τελευταίο Μήνυμα: 04-08-08, 20:20
  3. Ερώτηση για Access
    Από vagelisr στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 8
    Τελευταίο Μήνυμα: 31-05-07, 17:15
  4. Ερώτηση για την ACCESS
    Από ageon στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 23-04-07, 11:18
  5. ερώτηση για access
    Από tsourekia στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 06-12-05, 14:12

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

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

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