freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Νέος Κώδικας για Δικό μας AutoNumber


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [1 Μήνυμα]      Bookmarks Tags: κώδικαςνέος Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
kon73
Script Master

Μέλος από: 13 Απρ 2008
Βοηθήματα: 3
Μηνύματα: 224


View users profile Visit posters website
ΜήνυμαΣτις: 29 Ιουλ 2008 20:42    Θέμα: Νέος Κώδικας για Δικό μας AutoNumber Απάντηση με παράθεση  Mark this post and the followings unread

Παρουσιάζεται ως βοήθημα ο κώδικας για AutoNumber με δυνατότητες επιλογής τον αριθμό έναρξης, την τιμή βήματος (Πόσο θα αυξάνεται δηλαδή). Πριν τον κώδικα υπάρχουν κάποια εισαγωγικά σχόλια :

H Access όπως γνωρίζουμε μας δίνει την δυνατότητα σε ένα πεδίο ενός πίνακα να επιλέξουμε το AutoNumber ως επιλογή τύπου πεδίου. Το AutoNumber όμως είναι ως λειτουργία του προβληματικό. Δηλαδή με την επεξεργασία που κάνουμε σε μία εγγραφή όταν δεν την αποθηκεύσουμε αλλά πατήσουμε πχ ESC τότε ο αριθμός του AutoNumber έχει ήδη δεσμευτεί και μεταβαίνοντας σε νέα εγγραφή δεν μας δίνει το Autonumber τον σωστό αριθμό αλλά 2 αριθμούς μετά. Με δεύτερο Esc μεταβαίνει στον 3 αριθμό κοκ.

Μπορούμε να διορθώσουμε το Autonumber αν κλείσουμε τον πίνακα και την βάση και ξανά ανοίξουμε και δώσουμε εγγραφή καινούργια. Όμως επειδή αυτό είναι φανερό ότι δεν είναι λειτουργικό μεταβαίνουμε στην επιλογή να κατασκευάσουμε μία συνάρτηση που θα μας επιστρέφει τον σωστό αριθμό.

Θα πρέπει ο κώδικας να εισαχθεί σε ένα Module και θα καλείται από το Event Before Insert της Φόρμας (Πριν δηλαδή εισαχθεί μία καινούργια εγγραφή).


Κώδικας για Εισαγωγή στο Module
κώδικας:

Public Function CustAutoNum(FormFieldID, TableName As String, Optional StartNum, Optional StepNum As Long) As Integer
' © Ηλιάδης Κωνσταντίνος : http://www.MsAccess.gr
' Κώδικας Ελεύθερος προς Ιδιωτική χρήση.
' FormFieldID : Το Όνομα του πεδίου της φόρμας στο οποίο θέλουμε να εφαρμόσουμε
'               την αύξουσα αρίθμηση
' TableName   : Το όνομα του πίνακα που αντιστοιχεί στην ιδιότητα RecordSource της    ' φόρμας.
' StartNum    : Αριθμός που δηλώνει την έναρξη αρίθμησης
' StepNum     : Βήμα, κατά πόσο θα αυξάνει ο αριθμός

If IsMissing(StartNum) Then
     CustAutoNum = Nz(DMax(FormFieldID, TableName), 0) + Nz(StepNum, 1)
Else
     CustAutoNum = Nz(DMax(FormFieldID, TableName), StartNum - Nz(StepNum, 1)) + Nz(StepNum, 1)
End If
End Function


Καλούμε τον κώδικα στο BeforeInsert της Φόρμας με ένα παράδειγμα στο οποίο το όνομα πεδίου της φόρμας είναι το ID και ο πίνακας ο Customers. Ξεκινά η αρίθμηση από το 10 και αυξάνει κατά 1.
κώδικας:

Private Sub Form_BeforeInsert(Cancel As Integer)
    Me.ID = CustAutoNum("ID", "Customers", 10, 1)
End Sub

_________________
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [1 Μήνυμα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 09 Δεκ 2016 17:25 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos