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/520-synexeia-alfarithmitikis-arithmisis.html)

ntelios 30-03-10 18:40

Συνέχεια αλφαριθμητικής αρίθμησης
 
Καλησπέρα!

Έχω δημιουργήσει έναν πίνακα όπου καταχωρώ χρήστες με στοιχεία αυτών. Το πρώτο πεδίο του πίνακα το έχω θέσει ως userID σε μορφή αυτόματης αρίθμησης.

Το θέμα είναι ότι όταν διαγράφω μία επαφή - record, τότε η συνέχεια των αριθμών χάνεται. Πως μπορώ, όταν διαγράφω την 17η επαφή για παράδειγμα, η 18 να περνάει σαν αριθμός 17 κτλ?

Ευχαριστώ

editolis 30-03-10 19:05

Οταν εχεις μορφη ΑΥΤΟΜΑΤΗΣ ΑΡΙΘΜΗΣΗΣ αυτη δεν αλλαζει. Θα πρεπει να διαγραψεις
την στηλη σου και να την ξαναφτιαξεις για να σου ερθει συνεχομενα ο αριθμος.

Κατι που δεν σου το προτεινω.

Δεν εχει καμια σημασια εαν χανετε η συνεχεια. Παιζει κανενα ιδιαιτερο ρολο
στην βαση σου οι συνεχομενοι αριθμοι?

Tasos 30-03-10 19:27

Αλέξη καλησπέρα

Μπορείς αντί για τον πίνακα να χρησιμοποιήσεις ένα ερώτημα που έκτος από τα πεδία του
πίνακα θα πρέπει να προσθέσεις ακόμα ένα πεδίο με το όνομα πχ. AutoNum με την παρακάτω συνάρτηση:

AutoNum : DCount("Id";"Πινακας1";"Id<" & [Id])+1

Ελπίζω να βοήθησα.

Φιλικά

Τάσος

editolis 05-04-10 23:17

Δες και ενα αλλο παραδειγμα οταν πχ θελουμε για καποιο λογο η εγγραφη να μην ξεκινα απο το 1 αλλα απο το 1000.

Στη Microsoft Access στους πίνακες, το πεδίο "Αυτόματη αρίθμηση" σας επιτρέπει να ορίσετε ένα μοναδικό αύξοντα αριθμό σε κάθε γραμμή σε έναν πίνακα. Τα πεδία "Αυτόματη αρίθμηση" χρησιμοποιούνται συχνά ως το πρωτεύον κλειδί, επειδή είναι μοναδικά και μόνιμα (δηλαδή η αξία δεν μπορεί να αλλάξει τη στιγμή που θα τοποθετηθεί).

Για τους νέους πίνακες, AutoNumbering αρχίζει με το 1, και αυξάνεται κατά 1 με κάθε νέα γραμμή. Ωστόσο, μερικές φορές θέλετε να ξεκινήσετε την "Αυτόματη αρίθμηση" σε έναν αριθμό μεγαλύτερο από 1.

Για να το κάνετε αυτό, δημιουργήστε ένα ερώτημα προσάρτησης.
Πρώτον, εκτελέστε αυτό το ερώτημα:

INSERT INTO tblName (ID)
SELECT 999 AS Expr1

Όπου tblName είναι το όνομα του πίνακα, και το ID είναι το όνομα του πεδίου "Αυτόματη αρίθμηση".

Στη συνέχεια, εκτελέστε ένα δεύτερο ερώτημα για να διαγράψετε τη γραμμή που έχετε εισαγάγει:

DELETE
from tblName
WHERE ID = 999

Τώρα, η επόμενη εγγραφή προστίθεται στον πίνακα λαμβάνει την τιμή 1000.

stavros2244 06-04-10 11:15

Δεν κατάλαβα το σημείο με το:
AutoNum : DCount("Id";"Πινακας1";"Id<" & [Id])+1
Προσθέτω πεδίο Autonum στον πίνακα και μετά δημιουργώ το ερώτημα? Και την πάνω γραμμή σε ποιο σημείο την τοποθετώ?

Ευχαριστώ

Tasos 06-04-10 12:21

Σταύρο ΚΑΛΗΜΕΡΑ!!
Θα δημιουργήσεις ένα ερώτημα όπου στην προβολή σχεδίασης του,
θα του εισάγεις τα πεδία του πίνακα που θέλεις.
Κατόπιν στο πρώτο κενό πεδίο πέρασε την συνάρτηση αυτή:

AutoNum : DCount("Id";"Πινακας1";"Id<" & [Id])+1

Αντί του 1 μπορείς να βάλεις τον αριθμό από τον οποίο θέλεις να ξεκινά η αρίθμηση.

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

Τάσος

stavros2244 06-04-10 13:18

Ωραία!Δουλεύει μια χαρά!
Μια τελευταία ερώτηση!
Πώς θα μπορούσα να εμφανίσω αυτό το πεδίο σε μία φόρμα. Δηλαδή για να κάνω και πιο γενική την ερώτηση, πώς μπορώ να εμφανίσω τα αποτελέσματα ενός ερωτήματος σε μία φόρμα?

Tasos 06-04-10 13:50

Με το ίδιο τρόπο που θα τα εμφάνιζες τα αποτελέσματα ενός πίνακα.

stavros2244 06-04-10 14:12

Χρησιμοποιώ office 2007 και όταν δημιουργώ μία κενή φόρμα στην καρτέλα Σχεδίαση επιλέγω το Λίστα Πεδίων όπου μου βγάζει μόνο τους πίνακες από όπου επιλέγω τα πεδία που θέλω. Εάν πάω να σύρω από την αριστερή στήλη το ερώτημα μέσα στη φόρμα μου το εμφανίζει ως δευτερεύουσα φόρμα.
Προφανώς είναι κάτι που δεν βλέπω μπροστά μου αλλά κάθε βοήθεια θα ήταν επιθυμητή!

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

Tasos 06-04-10 14:37

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

Γενικά, το πως θα περιηγείσαι στην επιφάνεια εργασίας της Access, περιγράφεται πάρα πολύ καλά στη βοήθεια.
Αρκεί να πατήσεις F1 και να αναζητήσεις χρησιμοποιώντας λέξεις-κλειδιά.

artchrist73 10-08-10 12:07

ΔΕΝ ΤΟ ΚΑΤΑΛΑΒΑ
 
Είναι το δυνατό εύκολο να το έχω σε παράδειγμα σε μια βάση δεδομένων;
Παρόλα αυτά το δοκίμασα αλλά δεν λειτουργεί.
Ίσως σε παράδειγμα το καταλάβω.
Ευχαριστώ πολύ!!

:ohno:

Tasos 10-08-10 12:47

Αντώνη καλησπέρα!

Ποιο πράγμα θέλεις να έχεις σε παράδειγμα;

Φιλικά/Τάσος

artchrist73 11-08-10 18:49

Θα παρακαλούσα να υπάρχουνε σε παραδείγματα είτε video βήμα βήμα είτε σε μια βάση δεδομένων..........
Πραγματικά έχετε κάνει πολύ καλή δουλειά συγχαρητήρα !!!

Σχετικά με την αρίθμηση ούτε εγώ το κατάλαβα πιο πάνω...
υπάρχει περίπτωση να το έχουμε σε παράδειγμα mdb?
ευχάριστο!!!!
:022::022:

artchrist73 24-10-10 19:28

ΤΑΣΟ ΚΑΛΗΣΠΕΡΑ ΜΠΟΡΩ ΝΑ ΕΧΩ ΕΝΑ ΠΑΡΑΔΕΙΓΜΑ ΑΝΕΒΑΖΟΝΤΑΣ ΣΕ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ?
ΔΕΝ ΤΟ ΚΑΤΑΛΑΒΑ ΠΑΝΤΩΣ ΤΟ ΠΑΡΑΔΕΙΓΜΑ ΟΠΩΣ ΤΟ ΔΙΝΕΙΣ!!!

Tasos 24-10-10 19:46

Αγαπητέ Αντώνη, σ ευχαριστώ πολύ για τα κεφαλαία!

Γράφω:
Παράθεση:

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

AutoNum : DCount("Id";"Πινακας1";"Id<" & [Id])+1

Αντί του 1 μπορείς να βάλεις τον αριθμό από τον οποίο θέλεις να ξεκινά η αρίθμηση.

Τι δεν είναι κατανοητό;

Φιλικά

Τάσος

artchrist73 06-11-10 17:44

Παράθεση:

Αρχική Δημοσίευση από Tasos (Μήνυμα 2323)
Αλέξη καλησπέρα

Μπορείς αντί για τον πίνακα να χρησιμοποιήσεις ένα ερώτημα που έκτος από τα πεδία του
πίνακα θα πρέπει να προσθέσεις ακόμα ένα πεδίο με το όνομα πχ. AutoNum με την παρακάτω συνάρτηση:

AutoNum : DCount("Id";"Πινακας1";"Id<" & [Id])+1

Ελπίζω να βοήθησα.

Φιλικά

Τάσος

ΚΑΛΗΣΠΕΡΑ ΤΑΣΟ ΜΠΟΡΕΙΣ ΝΑ ΜΑΣ ΤΟ ΔΕΙΞΕΙΣ ΑΥΤΟ ΣΕ ΕΝΑ ΠΑΡΑΔΕΙΓΜΑ ACCESS? ΠΙΣΤΕΥΩ ΕΙΝΑΙ ΠΙΟ ΚΑΤΑΝΟΗΤΟ !!

mdragon 06-11-10 18:42

Αντώνη καλησπέρα,

1ον- Θα ήθελα να αντιμετώπίζεις την παρέα μας πιο "κόσμια". Μην χρησιμοποιείς λοιπόν ΚΕΦΑΛΑΙΑ.

2ον- Πιστευώ πως ο αγαπητός Τάσος δεν θα μπορούσε να είναι πιο κατανοητός.
Βλέποντας τις γνώσεις access που αναφέρεις στο προφίλ σου θα πρέπει να είσαι σε θέση να δημιούργήσεις ένα ερώτημα με βάση τον πίνακα στον οποίο θα θέλεις να έμφανίζεις την αυτόματη αρίθμηση.
Αργότερα αντιγράφεις τον τύπο που σου έδωσε ο Τάσος και είσαι έτοιμος. Στο ερώτημα αυτό βέβαια προϋποθέτει ότι θα έχεις ένα πεδίο με όνομα Id και μορφή αυτόματης αρίθμησης.



Φιλικά,
Μάρω

passarella 20-02-12 11:25

Καλησπέρα σε όλους.
Συγχαρητηρια για τη δουλειά που κάνετε.
Επειδή προσπαθω κι εγω να εκτελέσω τα παραπάνω βήματα αλλα δεν τα καταφέρνω.
Θα μπορουσατε να παραθέσετε ενα παράδειγμα?

passarella 20-02-12 11:33

Επίσης να ρωτησω το εξής:

οταν εχω π.χ. 10 εγγραφες (1-10) και σβησω π.χ. την εγγραφή με Α/Α 5.
πως μπορω να ξανακαταχωρήσω εγγραφή με Α/Α 5 και οι υπολοιπες εγγραφές να παραμείνουν με τον σωστο Α/Α και να μην χαλάσει η αρίθμηση.

passarella 20-02-12 12:35

http://www.ms-office.gr/forum/access...arithmisi.html

Βρήκα την απάντηση στο παραδειγμα που ζητηθηκε.

ευχαριστω.

Όσον αφορά όμως την απορία ως προς

passarella 20-02-12 12:36

Επίσης να ρωτησω το εξής:

οταν εχω π.χ. 10 εγγραφες (1-10) και σβησω π.χ. την εγγραφή με Α/Α 5.
πως μπορω να ξανακαταχωρήσω εγγραφή με Α/Α 5 και οι υπολοιπες εγγραφές να παραμείνουν με τον σωστο Α/Α και να μην χαλάσει η αρίθμηση.


θα ηθελα μια γνωμη απο εσας που ξερετε σαφως πολύ περισσοτερα....

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

Meteora 20-02-12 15:27

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

Φτιάξε ένα πίνακα. Ονόμασε ένα πεδίο [diadoxi] το οποίο να περιέχει τα Α/Α 1, Α/Α 2, κοκ. Τι σε εμποδίζει να διαγράψεις το πεδίο Α/Α 7 και σε μια μεταγενέστερη στιγμή να γράψεις πάλι το Α/Α 7;
Το 'να μη χαλάσει η σερά" εννοείς να ξαναεμφανιστεί στη θέση του διαγραμμένου Α/Α 7 το νέο ; Αν ναί με ποιά λογική έχεις την ταξινόμηση ;
Σε περίπτωση που -άστοχα- προσπαθήσεις να γράψεις Α/Α 1234 και το αλφαριθμητικό αυτό υπάρχει, τι πρέπει να συμβεί ;
Πόσα κενά διαστήματα έχεις μεταξύ του Α/Α και του αριθμού, με τον οποίο συνθέτουν τα αλφαριθμητικά αρίθμησης των εγγραφών σου ;
Βλέπεις οτι η ερώτησή σου έχει να κάνει με μια σειρά απαντήσεων που πρέπει να επιλύσεις, ώστε να αντιμετωπίσεις σωστά το ζήτημα.

Μάλλον έκανα το πρόβλημα πιο δύσκολο...


Με εκτίμηση
Νίκος Δ.

passarella 20-02-12 21:48

1 Συνημμένο(α)
Ευχαριστώ για το ενδιαφέρον και την άμεση απάντηση.

Υποθέστε οτι έχετε να κανετε με μια Διεύθυνση που το προσωπικο της εχει ιεραρχία,
υπαλληλος, τμηματαρχης, υποδιευθυντης, διευθυντης.
Αν ερθει ένας υπάλληλος π.χ. στην διεύθυνση και πρεπει να καταχωρηθούν τα στοιχεια του στη βαση, λόγω καποιων προσοντων που θα εχει παραπανω, θα πρεπει να μπει πιο ψηλα στην ιεραρχια των ηδη καταχωρημενων υπαλληλων στη βαση. Το ίδιο υποθέστε για Τμηματάρχη, Υποδιευθυντη κ.ο.κ.

Αντίστοιχα, αν φυγει ένας υπαλληλος, Τμηματάρχης κ.ο.κ , να μπορει να αλλαζει και η αρίθμηση.
Μία λύση σε αυτο την βρηκα εδω και ειναι πολυ καλη:
http://www.ms-office.gr/forum/access...ithmisi-2.html

Ενα τετοιο παραδειγμα είχα σκεφτει παλιοτερα, τροποποίησα το επισυναπτόμενο ετσι οπως θα το ηθελα να φαινεται αλλα συμβαινει το εξης:

Αν σβήσεις την εγγραφή με α/α 3 ,(anna) στο επισυναπτόμενο παράδειγμα, ολά ενταξει.
Αν την ξανακαταχωρήσεις με α/α 3, και παλι εντάξει.

Αν όμως θέλω την εγγραφή με α/α 3, (anna) να ειναι πιο πάνω
απο την εγγραφή με α/α 3 (afroditi) θα πρεπει να αλλαξω το πεδίο Διαδοχη της εγγραφής με
α/α 3 (afroditi) σε α/α 4 και αυτό συνεπάγεται οτι θα πρεπει να αλλαξουν και όλες οι υπολοιπες εγγραφές π.χ. η εγγραφή που έχει α/α 4 να παρει το 5 κ.ο.κ., πραγμα που πρεπει να το κάνεις χειρωνακτικά.

Για να σας προλαβω, δεν μπορω με αλλο κριτηριο να κανω την ταξινομηση.
Δεν με ενδιαφέρει καποιος συγκεκριμένος τύπος α/α (αλαφαριθμητικό, αριθμός, κ.τ.λ.).
αρκεί να γινεται σωστα η ταξινόμηση.

Ελπίζω τώρα να έγινα πιο σαφής.

Σας επισυνάπτω και το αρχειο τροποποιημενο.

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

Meteora 21-02-12 16:48

Καλησπέρα

Το πρόγραμμα θέλει κριτήριο για να κάνει κατάταξη. Ξέχνα την λογική της αυτόματης αρίθμησης! Έδωσα μια σκέψη, όχι για να δώσω την οριστική λύση, αλλά για να γεννηθούν καλύτερες ιδέες...
Μη αποδίδεις το ίδιο αλφαριθμητικό σε δύο ή περισσότερα πρόσωπα. Αν θέλεις να παρεμβάλεις εγγραφή μεταξύ δύο που ήδη υπάρχουν, πρέπει να χρησιμοποιήσεις κωδικούς με περισσότερα αριθμητικά ψηφία. πχ. a/a 1000 , a/a 2000, a/a 3000 κ.ο.κ Δοκίμασε !

Εφόσον κάτι άλλο ταιριάζει στην περίπτωσή σου, φυσικά και να απορρίψεις την πρότασή μου.

Δεν είδα κάποια τροποποίηση στο πόνημα που ανέβασα.

Με εκτίμηση
Νίκος Δ.

kapetang 21-02-12 20:23

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

Χριστίνα, η επισυναπτόμενη ΒΔ αποτελεί μια προσέγγιση του παραδείγματος που αναφέρεις στο μήνυμά σου.

Η ΒΔ αποτελείται:

1. Από τον πίνακα «Theseis», που περιέχει τις θέσεις των υπαλλήλων (Διευθυντής, Τμηματάρχης, Υπάλληλος, κλπ ).

Εδώ κατά την καταχώρηση οι θέσεις που βρίσκονται ψηλότερα στην ιεραρχία θα πρέπει να έχουν μικρότερο αριθμό.
Δε χρειάζεται οι αριθμοί να είναι συνεχόμενοι.

2. Από τον πίνακα «Persons».

Ο πίνακας περιέχει, εκτός των άλλων και ένα πεδίο «ID_Thesis» στο οποίο καταχωρείται (επιλέγεται) η θέση του υπαλλήλου και ένα πεδίο «fOrder».

Στο πεδίο «fOrder» καταχωρείται ένας αριθμός που δείχνει την κατάταξη των προσώπων που ανήκουν στην ίδια θέση (Διευθυντή, Τμηματάρχη, Υπάλληλου, κλπ).

Οι αριθμοί κατάταξης είναι διαφορετικοί και δεν είναι συνεχόμενοι. Θα μπορούσαμε να δώσουμε τους αριθμούς 10, 20, 30, 40, κλπ.

Πάντως οι αριθμοί πρέπει να είναι κατάλληλοι ώστε να επιτρέπουν την προσθήκη νέων ατόμων.

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

Στο παράδειγμα, αν είναι καλύτερος από όλους, θα πάρει έναν αριθμό μικρότερο του 10 πχ 5.

Αν είναι χειρότερος θα πάρει έναν αριθμό μεγαλύτερο του 40 πχ 50.

Αν είναι ανάμεσα στο 20 και το 30 θα πάρει πχ 26.

Η διαγραφή ατόμων δε δημιουργεί προβλήματα στην κατάταξη.

3. Το ερώτημα «QryOrder». Το ερώτημα με βάση τις τιμές των πεδίων «ID_Thesis» και «fOrder» απαριθμεί τα πρόσωπα (Πεδίο fCounter).

4. Τη φόρμα «frmCounter», που βασίζεται στο ερώτημα και δείχνει τα πρόσωπα με τη σειρά που θέλουμε.

5. Τη φόρμα «frmPersons», που βασίζεται στο ερώτημα «QryPersons» και και μπορεί να χρησιμοποιηθεί για προσθήκη, διόρθωση και διαγραφή στοιχείων .

Ελπίζω η παραπάνω προσέγγιση να καλύπτει το ζητούμενο.

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

stelianta 29-03-12 12:43

1 Συνημμένο(α)
Να δώσω λοιπον κ εγω την δικη μου προσεγγιση στο θέμα...

Η επισυναπτόμενη ΒΔ περιέχει ένα πινακα και μια φορμα

Στον πίνακα υπαρχει ένα πεδίο ListNumber.

Τα δεδομένα στην φόρμα παρουσιαζονται με κατάταξη κατά ListNumber, (και τυχον αλλα ερωτηματα μπορουν να ταξινομηθουν με τον ιδιο τροπο, ωστε να λυθει το θέμα της Ιεραρχίας)

Οσον αφορα την "αλλαγη" στην καταταξη ή την δημιουργία "κενων Θεσεων" (λογω μεταθεσης, λογω προσληψης, λογω απολυσης κλπ) λύνεται με την φόρμα.

Όπου στο συμβαν onupdate του txtListNumber (που εμφανιζει τις τιμες απο το πεδιο listnumber του πινακα tbl_Persons) , αφενος γινεται επανακαταταξη (κατα listnumber), αφετερου γινεται επαναριθμηση Όλων των listnumber αρχιζοντας απο το 1, και κλεινοντας τυχον "τρυπες' που μπορει να δημιουργηθηκαν.

Ο ΚΩΔΙΚΑΣ ΤΗΣ ΕΠΑΝΑΡΙΘΜΗΣΗΣ ΕΙΝΑΙ ΕΞ ΟΛΟΚΛΗΡΟΥ "ΑΝΤΙΓΡΑΦΗ" ΑΠΟ ΚΑΠΟΙΟ ΑΛΛΟ ΘΕΜΑ ΤΟΥ foroum. (Να με συγχωρησει ο δημιουργος του, αλλα εχω ξεσηκωσει τοσα πραγματα από το forum που δεν θυμαμαι ακριβως από που εχω παρει τι)

dimmag 29-03-12 22:24

1 Συνημμένο(α)
Καλησπέρα
Να δώσω λοιπον και εγω την δικη μου προσεγγιση στο θέμα...
Επισυνάπτω το αρχειο τροποποιημενο, προσθέτωντας ενα πεδίο Order στον πίνακα tplExercise μια φόρμα f_Order με MoveUpDownList και ενα ερώτημα qryListSort

Φιλικά

Δημήτρης

passarella 08-08-12 23:12

Ταξινόμηση Εγγραφών
 
1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από stelianta (Μήνυμα 10256)
Να δώσω λοιπον κ εγω την δικη μου προσεγγιση στο θέμα...

Η επισυναπτόμενη ΒΔ περιέχει ένα πινακα και μια φορμα

Στον πίνακα υπαρχει ένα πεδίο ListNumber.

Τα δεδομένα στην φόρμα παρουσιαζονται με κατάταξη κατά ListNumber, (και τυχον αλλα ερωτηματα μπορουν να ταξινομηθουν με τον ιδιο τροπο, ωστε να λυθει το θέμα της Ιεραρχίας)

Οσον αφορα την "αλλαγη" στην καταταξη ή την δημιουργία "κενων Θεσεων" (λογω μεταθεσης, λογω προσληψης, λογω απολυσης κλπ) λύνεται με την φόρμα.

Όπου στο συμβαν onupdate του txtListNumber (που εμφανιζει τις τιμες απο το πεδιο listnumber του πινακα tbl_Persons) , αφενος γινεται επανακαταταξη (κατα listnumber), αφετερου γινεται επαναριθμηση Όλων των listnumber αρχιζοντας απο το 1, και κλεινοντας τυχον "τρυπες' που μπορει να δημιουργηθηκαν.

Ο ΚΩΔΙΚΑΣ ΤΗΣ ΕΠΑΝΑΡΙΘΜΗΣΗΣ ΕΙΝΑΙ ΕΞ ΟΛΟΚΛΗΡΟΥ "ΑΝΤΙΓΡΑΦΗ" ΑΠΟ ΚΑΠΟΙΟ ΑΛΛΟ ΘΕΜΑ ΤΟΥ foroum. (Να με συγχωρησει ο δημιουργος του, αλλα εχω ξεσηκωσει τοσα πραγματα από το forum που δεν θυμαμαι ακριβως από που εχω παρει τι)

************************
Καλησπέρα σε όλους.
Ευχαριστώ για την βοήθεια σας και τις άμεσες απαντήσεις σας.

Συσχετίζοντας το πόνημα του μέλους Stelianta το οποίο θα ήθελα να ευχαριστήσω καθώς επίσης και να το προσαρμόσω στη δική μου Β.Δ. σας επισυνάπτω τροποποιημένο το πόνημα (epanarithmisi_new.rar) με το οποίο θέτω το παρακάτω ερώτημα:

Θα ήθελα η επαναρίθμηση του προσωπικού να γίνεται με βάση την ιδιότητα του και όχι στο σύνολο του.
π.χ. εχω 3 ατομα με την ιδιότητα Διευθυντής και θέλω εκεί να ορίζω τη σειρα κατάταξης με 1 2 3 και εκεί να γίνεται ταξινόμηση όπως γινεται με το αρχικό πόνημα.
το ίδιο να γινεται κι οταν εχω 5 άτομα με την ιδιότητα Υποδιευθυντής κ.ο.κ

Εφτιαξα μια φόρμα και μια δευτερευουσα φορμα μεσα απο την οποία δίνω την ιδιότητα (Δ/ντης, Υποδ/ντης, Υπάλληλος) και εμφανίζει τα πρόσωπα. Η σειρά καταταξης ομως δεν μου δουλευει.

Στη γραμμή κωδικα strSQL = "SELECT * FROM tbl_Persons ORDER BY[ListNumber]" του πονήματος προσθέτω το WHERE ΣύνθετοΠλαίσιο0 = Id_idiotitas ( κάτι τέτοιο νομίζω) αλλά δεν δουλεύει.
Δεν το έγραψα για να μην γίνουν χειρότερα.

Ευχαριστώ εκ των προτέρων για την πολύτιμη απαντησή σας.:thanks:

Thanosp 10-08-12 12:48

1 Συνημμένο(α)
Καλησπέρα
Κοίτα το συνημμένο, κάνει αυτόματη αρίθμηση , για όλες τις εγγραφές.
Θανάσης

passarella 10-08-12 14:00

Παράθεση:

Αρχική Δημοσίευση από Thanosp (Μήνυμα 11773)
Καλησπέρα
Κοίτα το συνημμένο, κάνει αυτόματη αρίθμηση , για όλες τις εγγραφές.
Θανάσης


**************************
Ευχαριστώ για την απάντηση.
Θα το κοιταξω ωστε να δω πως θα το προσαρμόσω διότι με ενδιαφέρει να γινεται η αρίθμηση με την χρήση της φόρμας και της δευτερεύουσας φόρμας οπως στο πόνημα που είχα επισυνάψει.

Θα επανέλθω με τυχον απορίες.

Υ.Γ. παρουσιάστηκε κι ενα προβλημα με ενα αρχειο agentctl.dll το οποίο πρεπει να κατεβασω προκειμένου να λειτουργήσει σωστα το πόνημα σας.

Thanosp 10-08-12 17:49

1 Συνημμένο(α)
Καλησπέρα
Κοίτα το συνημμένο, στο μετέφερα στην άλλη φόρμα, και άφησα ως ήταν .
Θανάσης

passarella 17-08-12 14:22

Συνέχεια αλφαριθμητικής αρίθμησης
 
Παράθεση:

Αρχική Δημοσίευση από Thanosp (Μήνυμα 11775)
Καλησπέρα
Κοίτα το συνημμένο, στο μετέφερα στην άλλη φόρμα, και άφησα ως ήταν .
Θανάσης


Καλησπέρα και πάλι.
Το πρόβλημα με το αρχείο βιβλιοθήκης στα xp δεν εμφανίζεται, οπότε όλα καλά.
Εμφανίζεται μόνο στα win7.:001_smile:

Ευχαριστώ πολύ για την απάντηση σας.
Τα πονήματα τα είδα αλλά και πάλι θα επιμείνω ότι θα ήθελα να γίνεται αυτόματα η αλλαγή της αρίθμησης (όπως και στο πόνημα του Stelianta) με τη διαφορά ότι θα γίνεται ξεχωριστά, δηλ.τα άτομα με την ιδιότητα Διευθυντής 1,2,3 κ.ο.κ. , Υποδιευθυντής 1, 2, 3 κ.ο.κ , και κάθε φορά που θα προσθέτω ένα νέο μέλος να γίνεται αυτόματα η αρίθμηση,ανάλογα με την ιδιότητα, με την ενημέρωση δηλ., αλλά όχι στο σύνολό του, όπως στο πόνημα του Stelianta.π.χ. όταν θα δίνω μια εγγραφή με ιδιότητα Διευθυντής και πρέπει να μπει, λόγω αρχαιότητας, μεταξύ της εγγραφής 2 και 3, να δίνω ListNumber = 2 και αυτόματα οι υπόλοιπες εγγραφές να γίνονται 3, 4 κ.ο.κ

Στο τελευταίο πόνημα πρέπει να αλλάζω εγώ την ταξινόμηση (πεδίο ListNumber) , μία - μία εγγραφή, να πατάω το κουμπί Αρίθμηση και να γίνεται η ταξινόμηση.

Δεν ξέρω αν εξ' αρχής δεν έγινα κατανοητή.

Δεν γνωρίζω επίσης πολύ καλά VBA κώδικα :cry4::plaf:
Προσπαθώ όσο μπορώ να κατανοήσω μερικά πράγματα.

Ελπίζω σε μια βοήθεια προκειμένου ολοκληρώσω αυτό που έχω αρχίσει.:worthy:
Ευχαριστώ και πάλι.

ασχετος 17-08-12 17:27

Χριστίνα καλό απόγευμα,

Στην βάση του Θανάση "epanarithmisi", στην φόρμα "frm_idiotita" στο πεδίο 'cb0' έβγαλα τον κώδικα και στο πεδίο 'ListNumber' της δευτερεύουσας φόρμας 'Δευτερεύουσα φόρμα tbl_Persons Ετικέτα' στο συμβάν 'Before Upadate' έβαλα αυτόν τον κώδικα. Είναι τροπόποιηση του κώδικα του Θανάση. Μάλλον πρέπει να σου κάνει.

Dim EpetNum As Long
Dim parent_id_idiot As Long
Dim db As Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim i As Integer
Dim rscount As Integer

parent_id_idiot = Me.Parent.cb0.Column(0)
EpetNum = Nz(Me.ListNumber)

strSQL = "SELECT * " & _
" FROM tbl_Persons" & _
" WHERE [Id_idiotitas]=" & parent_id_idiot & _
" AND[ListNumber] >=" & EpetNum & _
" ORDER BY[ListNumber]"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
rscount = rst.RecordCount

i = EpetNum + 1

If rscount = 0 Then
rst.Close
Set rst = Nothing
Set db = Nothing
Exit Sub
Else
Do
rst.Edit
rst![ListNumber] = i
rst.Update
rst.MoveNext
i = i + 1
Loop Until rst.EOF
End If

rst.Close
Set rst = Nothing
Set db = Nothing

ασχετος 17-08-12 19:06

Χριστίνα καλό σου βράδυ,

επειδή κάποτε θα χρειαστεί να διαγράψεις κάποιον, με κάποια ιδότητα, για να γίνει ξανά συνεχή αρίθμηση στο πεδίο 'ListNumber' της 'Δευτερεύουσα φόρμα tbl_Persons' πρέπει στο συμβάν, αυτής της φόρμας, 'After Del Confirm' να βάλεις αυτόν τον κώδικα

Dim EpetNum As Long
Dim parent_id_idiot As Long
Dim db As Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim i As Integer
Dim rscount As Integer
Dim NumList As Integer

parent_id_idiot = Me.Parent.cb0.Column(0)

strSQL = "SELECT * " & _
" FROM tbl_Persons" & _
" WHERE [Id_idiotitas]=" & parent_id_idiot & _
" ORDER BY[ListNumber]"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
rscount = rst.RecordCount
rst.MoveFirst
NumList = rst![ListNumber]

i = NumList

If rscount = 0 Then
rst.Close
Set rst = Nothing
Set db = Nothing
Exit Sub
Else
Do
rst.Edit
rst![ListNumber] = i
rst.Update
rst.MoveNext
i = i + 1
Loop Until rst.EOF
End If

rst.Close
Set rst = Nothing
Set db = Nothing

και στο συμβάν 'After Update' της ίδιας φόρμας τον κώδικα

Me.Form.Requery
DoCmd.GoToRecord , , acNewRec

passarella 20-08-12 09:29

Συνέχεια αλφαριθμητικής αρίθμησης
 
Ευχαριστώ πολύ το μέλος άσχετος που μάλλον το αντίθετο θα έλεγα!!!

Όντως αυτό ήθελα....Πολύ καλό...!!!!:worthy::thanks::thanks:

Θα επανέλθω με τυχόν απορίες.....


Ευχαριστώ και πάλι όσους μου απάντησαν έως τώρα.....:thanks:


Η ώρα είναι 18:48.

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


Search Engine Optimization by vBSEO 3.3.2