Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Αυτόματη Αρίθμηση σε τιμολόγηση

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-01-15, 13:35
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή Αυτόματη Αρίθμηση σε τιμολόγηση

Καλησπέρα… και Καλή χρονιά!!!

Για να έχω αυτόματη αρίθμηση τιμολογίου χρησιμοποιώ τον κώδικα(κάπου εδώ τον βρήκα):
Private Sub Form_BeforeInsert(Cancel As Integer)
If Nz(Me.Controls("Νο"), 0) = 0 Then Me.Controls("Νο") = Nz(DMax("[Νο]", "ΤΙΜΟΛΟΓΗΣΗ"), 0) + 1
End Sub

Όμως ο παραπάνω κώδικας παίρνει το μεγαλύτερο νούμερο της στήλης και προσθέτει ένα… Εαν θέλω να παίρνει αυτόματη αρίθμηση για το τιμολόγιο, άλλη για το δελτίο Αποστολής, άλλη για το Δ. Αποστ. Τιμ., κ.ο.κ… Τι πρέπει να προσθέσω στον κώδικα για να διαβάζει την στήλη του παραστατικού και να παίρνει μετά την μεγαλύτερη τιμή από την στήλη No?
Απάντηση με παράθεση
  #2  
Παλιά 05-01-15, 10:01
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα


Αντώνη, αν υποθέσουμε ότι ο τύπος του παραστατικού αποθηκεύεται στο πεδίο ΤΥΠΟΣ, άλλαξε τον κώδικα με τον ακόλουθο:

1) Αν το πεδίο ΤΥΠΟΣ είναι αριθμητικό

If Nz(Me.Controls("Νο"), 0) = 0 Then Me.Controls("Νο") = Nz(DMax("[Νο]", "ΤΙΜΟΛΟΓΗΣΗ","ΤΥΠΟΣ=" & me.ΤΥΠΟΣ), 0) + 1

2) Αν το πεδίο ΤΥΠΟΣ είναι κειμένου

If Nz(Me.Controls("Νο"), 0) = 0 Then Me.Controls("Νο") = Nz(DMax("[Νο]", "ΤΙΜΟΛΟΓΗΣΗ","ΤΥΠΟΣ='" & me.ΤΥΠΟΣ & "'"), 0) + 1

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #3  
Παλιά 05-01-15, 11:16
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή

Γιώργο ευχαριστώ πολύ για την απάντηση... ΦΦυσικά ο τύπος παραστατικού ειναι κείμενο και με αυτόν τον κώδικα δίνει συνέχεια αρίθμηση 1...
Απάντηση με παράθεση
  #4  
Παλιά 05-01-15, 12:02
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Είναι φανερό ότι δεν προσάρμοσες σωστά τον κώδικα στα δεδομένα σου.

Το λάθος δεν είναι δυνατόν να εντοπιστεί χωρίς να ανεβάσεις δείγμα της ΒΔ.
Απάντηση με παράθεση
  #5  
Παλιά 05-01-15, 12:17
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή

Γιώργο είναι συνέχεια της προηγούμενης που είχα ανεβάσει... Μπορείς να δεις την παλιά... να μην την ανεβάζω συνέχεια!!!
Απάντηση με παράθεση
  #6  
Παλιά 05-01-15, 12:20
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή

Αυτό έγραψα...
If Nz(Me.Controls("Νο"), 0) = 0 Then Me.Controls("Νο") = Nz(DMax("[Νο]", "ΤΙΜΟΛΟΓΗΣΗ", "ΠΑΡΑΣΤΑΤΙΚΟ='" & Me.ΠΑΡΑΣΤΑΤΙΚΟ & "'"), 0) + 1
Απάντηση με παράθεση
  #7  
Παλιά 05-01-15, 15:44
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Το πεδίο ΠΑΡΑΣΤΑΤΙΚΟ, μολονότι εμφανίζει τιμές κειμένου, ενδέχεται να είναι αριθμητικό.

Δοκίμασε και τον κώδικα:

If Nz(Me.Controls("Νο"), 0) = 0 Then Me.Controls("Νο") = Nz(DMax("[Νο]", "ΤΙΜΟΛΟΓΗΣΗ", "ΠΑΡΑΣΤΑΤΙΚΟ=" & Me.ΠΑΡΑΣΤΑΤΙΚΟ ), 0) + 1
Απάντηση με παράθεση
  #8  
Παλιά 05-01-15, 22:21
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή

Μου βγάζει λάθος Γιώργο...
η Βάση ειναι εδω... (εαν θες να κάνεις δοκιμές)
http://www.ms-office.gr/forum/access...se-pinaka.html

Υ.Γ. Ευχαριστώ για την βοήθεια!!!
Απάντηση με παράθεση
  #9  
Παλιά 05-01-15, 23:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Αντώνη, δοκίμασε τον παρακάτω κώδικα:

Κώδικας:
Private Sub ΠΑΡΑΣΤΑΤΙΚΟ_AfterUpdate()
    If Nz(Me.ΠΑΡΑΣΤΑΤΙΚΟ, "") <> "" Then
        Me.Νο = Nz(DMax("Νο", "ΤΙΜΟΛΟΓΗΣΗ", "ΠΑΡΑΣΤΑΤΙΚΟ='" & Me.ΠΑΡΑΣΤΑΤΙΚΟ & "'"), 0) + 1
    End If
End Sub
Φιλικά/Γιώργος
Απάντηση με παράθεση
  #10  
Παλιά 05-01-15, 23:20
Όνομα: Αντωνης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2014
Μηνύματα: 10
Προεπιλογή

Εισαι αστέρι!!!
Ευχαριστώ πολύ δουλεύει τέλεια!!!
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Αυτόματη αρίθμηση stam75 Excel - Ερωτήσεις / Απαντήσεις 7 28-06-16 12:04
αυτόματη αρίθμηση ευη79 Access - Ερωτήσεις / Απαντήσεις 3 17-02-15 01:19
[ Πίνακες ] Αυτόματη αρίθμηση artchrist73 Access - Ερωτήσεις / Απαντήσεις 13 19-05-11 11:08
Αυτόματη αρίθμηση NIC Access - Ερωτήσεις / Απαντήσεις 2 31-08-10 00:00


Η ώρα είναι 09:44.