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/1095-aikson-arithmos-se-kathe-etos.html)

Xristos 22-04-11 18:33

Αύξων αριθμός σε κάθε έτος
 
Γειά σας. Έχω ένα δεύτερο ερώτημα. Μπορώ στην access να βάλω σε ένα πεδίο αύξων αριθμό και με κάθε νέο έτος να ξεκινάει από την αρχή;; Δηλ. το έτος 2011 να ξεκινάει από το 1 και να τελειώσει στο 1013 και με το που ξεκινάει το 2012 στο ίδιο πεδίο να ξεκινάει από το 1 κ.ο.κ. Σας ευχαριστώ

Dimitris Ch 23-04-11 21:39

Οταν λες ΑΑ τι ακριβως εννοεις...?
ΑΑ με τιην σειρα που θα καταχωρεις τις εγγραφες...?
Η ΑΑ μετά απο καποια ταξινομηση που θα κανεις....?
Δωσε μας περισσοτερες πληροφοριες

Καλή Ανασταση
Φιλικα Δημηρης

Xristos 25-04-11 07:56

Αύξων Αριθμός
 
Καλημέρα και ΧΡΟΝΙΑ ΠΟΛΛΑ.
Όταν λέω Α/Α εννοώ ΑΥΞΩΝ ΑΡΙΘΜΟΣ, ο οποίος θα μπαίνει αυτόματα σε ένα πίνακα και κατ΄επέκταση σε μία φόρα και ο οποίος (ΑΥΞΩΝ ΑΡΙΘΜΟΣ) θα αρχίζει από την αρχή Νο1,2,3.... σε κάθε καινούργιο ημερολογιακό έτος. Σε ευχαριστώ :cheesy:

Tasos 25-04-11 11:18

1 Συνημμένο(α)
Καλημέρα σε όλους!
Χρήστο, ο αύξων αριθμός που περνιέται αυτόματα από την Access σε κάθε νέα εγγραφή,
είναι το Αναγνωριστικό (ID) και είναι ReadOnly.

Δεν μπορεί να περιέχει διπλότυπα και ούτε πρέπει να "πειραχτεί"!

Φυσικά μπορούμε με διάφορες μεθόδους να προκαλέσουμε το μηδενισμό του.

Κάτι τέτοιο θα ήταν ΚΑΤΑΣΤΡΟΦΙΚΟ αν ο πίνακας αυτός συνδέεται/σχετίζεται με κάποιον άλλο μέσω του αναγνωριστικού!
Μάλλον αυτό που θα χρειαστείς είναι νέο πεδίο που θα περιέχει τους σειριακούς αριθμούς για κάθε ημερομηνία κάθε ημερολογιακού έτους.

Έτσι εξασφαλίζεις τη μοναδικότητα της κάθε εγγραφής χάρις την αυτόματη αρίθμηση του A/A
και ταυτόχρονα έχεις (στο νέο πεδίο) την αυτόματη αρίθμηση για τα ημερολογιακά έτη.

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

Στο επισυναπτόμενο παράδειγμα μπορείς να δεις έναν τρόπο (από τους πολλούς) επιτύχεις τα παραπάνω που πιστεύω ότι δίνει λύση στο ερώτημα σου.

Φιλικά

Τάσος

Xristos 25-04-11 16:20

Αύξων αριθμός
 
Τάσο σε ευχαριστώ. Θα ήθελα να σε ρωτήσω επάνω στο επισυναπτόμενο παράδειγμα, μπορώ να αλλάξω τα ονόματα των στηλών και να αφήσω μόνο το τελευταίο;;; δηλαδή το Customerld μπορώ να βάλω π.χ Επώνυμο ή κάτι άλλο;;; Αλήθεια τα ονόματα που δίνουμε στις στήλες θα πρέπει να greeklish ή ελληνικά. Δηλαδή το Επώνυμο μπορώ να το γράψω Eponimo;;; Αλήθεια έχω γράψει στο φόρουμ για 3, 4 προβλήματα που έχω. Πιστεύω να βρω την ίδια ανταπόκριση. Σε ευχαριστώ και πάλι για την βοηθειά σου και περιμένω απαντήσεις :coffee2:

Tasos 25-04-11 17:32

Χρήστο, μπορείς να χρησιμοποιήσεις τα ονόματα που επιθυμείς (κατά προτίμηση με λατινικούς χαρακτήρες και χωρίς κενά)
αρκεί αυτά να μην είναι δεσμευμένα από γλώσες προγραμματισμού που εμπλέκονται στην εφαρμογή (SQL, VB).
Πχ. η λέξεις Date, Year, Month, Day και πολλές άλλες δεσμευμένες λέξεις,
προς αποφυγή συγχύσεων καρά την ανάπτυξη και την εφαρμογή του Έργου σου δεν επιτρέπεται να χρησιμοποιούνται ως ονόματα αντικειμένων.

Είναι ευκολότερο να χρησιμοποιήσεις τον τύπο:

Yearly_Auto_Number: DCount("[OrderID]";"[tblOrders]";"[OrderID]<" & [OrderID] & " AND YEAR([OrderDate])=" & Year([OrderDate]))+1

στη βάση σου από το να αλλάξεις όλα τα ονόματα το παράδειγμα στα μέτρα σου.

Το όνομα : Yearly_Auto_Number καθώς και τα tblOrders, OrderID, OrderDate, μπορείς να τα αντικαταστήσεις με τα ονόματα των πινάκων/πεδίων της βάσης σου.

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

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

Φιλικά

Τάσος

Xristos 25-04-11 18:18

Αύξων αριθμός
 
Τάσο σε ευχαριστώ για τις απαντήσεις σου. Θα το εφαρμόσω και θα σου πω.
Σχετικά με τα υπόλοιπα ερωτήματά μου κατάλαβα γιατί δεν μου έχουν απαντήσει.
Είναι λογικό αλλά ξέρεις εγώ είμαι στην αρχή της access και θέλω να μάθω τόσα πολλά, πάντα με την βοήθειά σας, γιατί μόνος μου "ΔΕΝ ΝΟΜΙΖΩ ΤΑΚΗ". Θέλω να φτιάξω προγράμματα για την δουλειά μου (Δικαστήρια), όπως έχω αναφέρει και σε προηγούμενα ερωτήματά μου (που περιμένουν απαντήσεις) και όπως καταλαβαίνεις...............
Βλέπω προηγούμενες απαντήσεις σε διάφορα ερωτήματα και βλέπω κώδικες. Αυτοί που μπαίνουν αν χρειαστώ να τους χρησιμοποιήσω;;;
Αρκετά σε κούρασα.....Ανυπομονώ για απαντήσεις και ερωτήσεις :bye3:

Xristos 02-05-11 11:48

Αύξων αριθμός
 
Τάσο γειά σου. Σου είχα κάνει ερώτηση με τον αύξοντα αριθμό καθ' έτος και μου έστειλες την απάντηση η οποία με βοήθησε πολύ και σε ευχαριστώ (βλ. ανωτέρω), αλλά θα ήθελα να μου πεις αν γίνεται να υπάρχει αύξοντα αριθμός σε ένα πεδίο με ίδια ημερομηνία. Δηλαδή εμείς στο Δικαστήριο (όπου δουλεύω) έχουμε σε μία ημέρα δικαστηρίου να δικάζονται 10-15 υποθέσεις οι οποίες παίρνουν Α/Α. Θα ήθελα να μου πεις αν γίνεται στην ίδια δικάσιμο (ημέρα) να παίρνει τον Α/Α μόνο του, αλλά να αλλάζει σε κάθε έτος. Αν δεν έγινα κατανοητός πέσμου να σου στείλω συνημmένο. Σε ευχαριστώ

Tasos 02-05-11 13:12

Γεια σου Χρήστο!

Έστω ότι έχεις τον πίνακα pinakas_Diklasimes που μεταξύ άλλων περιέχει τα πεδία:
  • A/A_Dikasimou = Τύπος δεδομένων: Αυτόματη αρίθμηση (Ο μοναδικός αριθμός για κάθε δικάσιμη υπόθεση.
  • Hmerom_Dikasimou = Τύπος δεδομένων: Ημερομηνία ( η ημερομηνία της δικάσιμης υπόθεσης.

Στο Ερώτημα που θα βάλεις τα πεδία του πίνακα που σ ενδιαφέρουν, πρόσθεσε ένα νέο πεδίο και πέρασε το παρακάτω: Yearly_Auto_Number: DCount("[A/A_Dikasimou]";"[pinakas_Diklasimes]";"[ A/A_Dikasimou]<" & [A/A_Dikasimou] & " AND YEAR([Hmerom_Dikasimou])=" & Year([Hmerom_Dikasimou]))+1


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

Φιλικά

Τάσος

Xristos 02-05-11 19:35

Αύξων αριθμός
 
1 Συνημμένο(α)
Τάσο σε ευχαριστώ που ανταποκρίθηκες αμέσως στο πρόβλημά μου. Πιστεύω ότι έκανα ότι μου είπες (σου στέλνω και συνημμένο αυτό που έκανα) αλλά ή κάπου κάνω λάθος ή κάτι δεν κατάλαβα καλά. Κοίτατω σε παρακαλώ και πέσμου το λάθος μου. Μια παρατήρηση στον κωδικό γράφεις Diklasimou αντί για Dikasimou. Δεν ξέρω αν εκεί είναι το λάθος, γιατί δοκίμασα και χωρίς το (l) και πάλι βγάζει λάθος. Περιμένω τα νέα σου :thumbup:

Meteora 02-05-11 20:33

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

Υπήρχαν κάποια κενά στην sql του ερωτήματος... Χρήστο, είναι λάθος να απευθύνεις μια ερώτηση σε κάποιο μέλος, διότι δεν είναι ευγενικό προς τους υπόλοιπους, τους οποίους -έμμεσα αποκλείεις από το να σε δώσουν μια απάντηση.
Καλή συνέχεια...

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

Xristos 05-05-11 17:21

Τάσο το ερώτημα μου στην access είναι "Αύξων αριθμός σε κάθε έτος" και σε αυτό δεν μου έχει απαντήσει ο ΜΕΤΕΩΡΑ. Ο τελευταίος ήσουν εσύ και μετά σου έγραψα εγώ και δεν μου απάντησες. Τουλάχιστον έτσι βλέπω εγώ δεν νομίζω να είναι διαφορετικά. Σε ευχαριστώ :lipsrsealed:

Xristos 05-05-11 17:26

Απάντηση
 
Νίκο σε ευχαριστώ πολύ. Δεν είναι η πρόθεσή μου αυτή και φυσικά δεν αποκλείω κανένα, απλά ίσως μου είχε απαντήσει ο Τάσος τελευταία και του έγραψα την ερώτηση. Μέχρι τώρα με έχουν βοηθήσει πολοί και αυτή είναι η δουλειά του φόρουμ. "Το ένα χέρι νίβει το άλλο και τα δυό το πρόσωπο". Χίλια συγνώμη αν σου έδωσα αυτή την εντύπωση. Δεν ήταν στην πρόθεσή μου.Και πάλι σε ευχαριστώ και πιστεύω να ξανασυνεργαστούμαι στο μέλλον :lock2:

Dimitris Ch 05-05-11 20:02

1 Συνημμένο(α)
Λάθη στην σύνταξη των ονομάτων είχες και κάποια κενά νομίζω
Αυτό που έστειλε ο Τάσος ήταν σωστό
Το διόρθωσα και σου το στέλνω

Xristos 06-05-11 07:40

Αύξων αριθμός πινακίου
 
Παιδιά ΚΑΛΗΜΕΡΑ και σας ευχαριστώ για την ανταπόκριση :icon_phone:.
Ίσως να μην έγινα κατανοητός. Θα σας το αναλύσω περισσότερο για να καταλάβετε.
Την ημέρα του Δικαστηρίου, τις αγωγές τις περνάμε σε ένα πινάκιο και παίρνουν αύξοντα αριθμό, δηλ στις 5-5-2011 μπορεί το πινάκιο να έχει 20-25 υποθέσεις, αυτές παίρνουν Α/Α από το 1...20,25. Στην δικάσιμο της 6-5-2011μπορεί το πινάκιο να έχει 10-15 υποθέσεις, αυτές παίρνουν Α/Α από το 1...10,15 κ.ο.κ.
Αυτό θέλω. Σε κάθε δικάσιμο πινακίου να έχει Α/Α από το 1..........
Πιστεύω να σας έδωσα να το καταλάβετε και πιστεύω να υπάρχει λύση, αλλά όπως έχετε αποδείξει ΤΙΠΟΤΑ ΔΕΝ ΥΠΑΡΧΕΙ ΧΩΡΙΣ ΛΥΣΗ. Σας ευχαριστώ :blush:

Tasos 06-05-11 08:47

Καλημέρα σε όλους!
Χρήστο αν κατάλαβα καλά θέλεις έναν αύξοντα αριθμό Δικάσιμου ανά Ημέρα και όχι ανά Έτος.

Δοκίμασε:
Κώδικας:

Daily_Auto_Number: DCount("[A/A_Dikasimou]";"[pinakas_Dikasimes]";"[A/A_Dikasimou]<" &
 [A/A_Dikasimou] & " AND CLng([Hmerom_Dikasimou])=" & CLng([Hmerom_Dikasimou]))+1

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

Τάσος

Xristos 06-05-11 12:15

:icon_hihi: :dft010::021:
Τα smilies τα λένε όλα. ΣΑΣ ΕΥΧΑΡΙΣΤΩ είναι αυτό που θέλω.
Μου δείξατε τόσα πολλά που δεν ξέρω από που ν' αρχίσω για να τα βάλω σε μια σειρά.
Μαζί θα βρείτε μεγάλο μπελά (ελπίζω να μην με βαρεθείτε), αλλά βοηθάτε τόσο πολύ που δεν έχω λόγια παρά ένα ΜΕΓΑΛΟΟΟΟΟΟΟΟΟΟΟΟΟ ΕΥΧΑΡΙΣΤΩΩΩΩΩΩΩΩΩΩΩΩΩΩ!!!!!! !!

vala 06-01-17 08:47

Καλησπέρα! Χρόνια πολλά! Ψάχνοντας κάτι αντίστοιχο και εγώ βρήκα αυτό που πρότεινε ο Τάσος. Απλά εγώ θέλω να έχω αριθμηση κάθε μήνα και όχι κάθε ημέρα! Πως πρέπει να γράψω τον κωδικα;

nasos23 06-01-17 11:47

1 Συνημμένο(α)
Καλημέρα σε όλους
Νίκο δές το ερώτημα βασισμένο στην πρόταση του Τάσου

kapetang 06-01-17 15:58

1 Συνημμένο(α)
Καλησπέρα και καλή χρονιά

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

Στο συνημμένο παράδειγμα ο πίνακας ονομάζεται [Table1], το πεδίο για τον αριθμό πρωτοκόλλου [fP] και το πεδίο για την ημερομηνία [fDate].

Τα ίδια με τα πεδία ονόματα έχουν και τα πλαίσια κειμένου της φόρμας [frmTable], που χρησιμοποιείται για την καταχώρηση των εγγράφων.

Στην περίπτωση καταχώρησης ενός εγγράφου στη φόρμα (δημιουργίας νέας εγγραφής), όταν εισέλθουμε στο πεδίο [fP] , εκτελείται ο παρακάτω κώδικας:
Κώδικας:

Private Sub fP_GotFocus()
    If Me.NewRecord Then
        If IsDate(Me.fDate) Then
            If Me.fDate < Nz(DMax("[fDate]", "[Table1]"), 0) Then
                MsgBox "Η ημερομηνία δεν μπορεί να είναι μικρότερη των ήδη καταχωρηθεισών"
                Me.fDate.SetFocus
                Exit Sub
            End If
            Me.fP = Nz(DMax("[fP]", "Table1", "Year([fDate])=" & Year([fDate]) & _
                                            " And Month([fDate])=" & Month([fDate]))) + 1
        Else
            MsgBox "Πρέπει να συμπληρώσετε την ημερομηνία"
            Me.fDate.SetFocus
        End If
    End If
End Sub

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

Νίκο ελπίζω να μπορέσεις να προσαρμόσεις το παράδειγμα στα δεδομένα σου.

Σημείωση:

1) Ο τύπος του Νάσου είναι σωστός, αλλά δεν καλύπτει την περίπτωση που οι καταχωρήσεις αφορούν πολλά (όχι ένα) χρόνια.

2) Νίκο (vala) στο σύνδεσμο: http://www.ms-office.gr/forum/access...arithmisi.html έκανες το ίδιο ερώτημα και πήρες μια λύση από το Νίκο (Meteora).

Το σωστό θα ήταν να συνεχίσεις το θέμα που άνοιξες (να δοκιμάσεις τη λύση και να ενημερώσεις αν σε καλύπτει) και όχι να το εγκαταλείψεις διατυπώνοντας την ίδια ερώτηση και σε κάποιο παλιότερο θέμα.

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

vala 10-01-17 17:08

Θα το δοκιμάσω και θα σας ενημερώσω! Γιώργο έχεις δίκιο για το ερώτημα! Απλά είδα μετά ότι υπάρχει σχετικό θέμα με αυτό που θέλω και ξέχασα να το διορθώσω!Σας ευχαριστώ πολύ πάντως!


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

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


Search Engine Optimization by vBSEO 3.3.2