| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλησπέρα, πως μπορώ να διαμορφώσω τον κώδικα, dt1 = Nz(DMax("[ΗΜΕΡΟΜΗΝΙΑ ΧΡΕΩΣΗΣ]", "[tblEispraxi]", "[AP] <" & Me.[AP]), 0) dt2 = Nz(DMin("[ΗΜΕΡΟΜΗΝΙΑ ΧΡΕΩΣΗΣ]", "[tblEispraxi]", "[AP] >" & Me.[AP]), #1/1/9999#) If Me.[ΗΜΕΡΟΜΗΝΙΑ ΧΡΕΩΣΗΣ] < dt1 Or Me.[ΗΜΕΡΟΜΗΝΙΑ ΧΡΕΩΣΗΣ] > dt2 Then MsgBox "ημερομηνια προγενέστερη της τελευταίας " όπου [AP] η αρίθμηση, ώστε να λαμβάνει υπόψη και τον τύπο του παρασταστικού [id_type]; Τώρα βλέπει μόνο την αρίθμηση. Αν έχω πχ ΤΠΥ & ΤΙΜ.ΠΩΛ. με διαφορετική αρίθμηση δεν δουλεύει σωστά. |
|
#2
| ||||
| ||||
|
Καλησπέρα, Διαβάζω τον κώδικα, τον καταλαβαίνω, αλλά αν δεν δοκιμάσω τις εντολές και τη δομή τους δεν μπορώ να σε δώσω απάντηση. Οι ημερομηνίες θέλουν 'ευαίσθητους' χειρισμούς ! Υστερολόγιο : Ο φίλος μας ο Νάσος, έχει καλή εμπειρία, είναι προσεκτικός και αν αναρτήσεις μια μικρογραφία της σχεδίασης που κάνεις και στην οποία να φαίνεται το πρόβλημα, είναι βέβαιο ότι θα βρεις λύση. καλή συνέχεια... / Νίκος |
|
#3
| |||
| |||
|
Καλημέρα, ναι Νίκο μου έχει δώσει λύσεις στο παρελθόν όπως και εσύ και ο Γιώργος Καπ. Ανεβάζω ένα δείγμα στο οποίο έχω δύο τύπους παραστατικών ΤΠΥ & ΤΙΥ. Η τελευταία αρίθμηση στο ΤΠΥ είναι 3 με ημερομηνία 24/4/2017. Η τελευταία αρίθμηση στο ΤΙΥ είναι 3 με ημερομηνία 31/3/2017. Δοκιμάστε να επιλέξετε το ΤΙΥ με ημερομηνία 20/4/2017 η οποία είναι μεταγενέστερη του τύπου παραστατικού(ΤΙΥ).Δεν την παίρνει γιατί προφανώς βλέπει το ΤΠΥ με ημερομηνία 24/4/2017. |
|
#4
| |||
| |||
|
Καλησπέρα στην παρέα. Σάκη δες μια δική μου προσέγγιση για το ζητούμενο. Στην επισυναπτόμενη βάση για κάθε κάθε τύπο τιμολογίου γίνεται διαφορετική αρίθμηση. Με την αλλαγή του έτους ξεκινάει πάλι απ' την αρχή Σημ.Για την πρώτη εγγραφή κάθε τιμολογίου και κάθε έτους έχουμε τη δυνατότητα να ορίσουμεε τον αριθμό που θα ξεκινάει το κάθε τιμολόγιο Τελευταία επεξεργασία από το χρήστη nasos23 : 24-04-17 στις 16:31. |
|
#5
| |||
| |||
|
Καλή η προσέγγισή σου Νάσο, όπως και πολύ χρήσιμο να δίνεται η δυνατότητα επιλογής αλλαγής αρίθμησης στο επόμενο έτος(ήταν κάτι που δεν είχα σκεφθεί)..Ίσως μία "πινελιά" ακόμη σε περίπτωση που δεν θέλουμε να ξεκινάει η αρίθμηση από το 1 στο επόμενο έτος να υπάρχει επιλογή συνέχισης χωρίς να ψάχνουμε να βρούμε την τελευταία. Προσάρμοσα την λύση του Νάσου στο δικό μου παράδειγμα και εξακολουθεί να μην δουλεύει. Επιλέξτε τον τύπο παραστατικού ΤΙΥ με ημερομηνία 20/4/2017 η οποία είναι μεταγενέστερη του συγκεκριμένου τύπου(τελευταία 31/3/17). Τελευταία επεξεργασία από το χρήστη smasak : 25-04-17 στις 06:47. |
|
#6
| |||
| |||
|
Προσαρμοσμένη στην πρότασή μου
|
|
#7
| |||
| |||
|
Νάσο όπως έχω το παράδειγμά σου επέλεξε τον τύπο παραστατικού ΤΙΥ και δώσε ημερομηνία 5/2/2016. Υπάρχουν μόνο 2 εγγραφές με ΤΠΥ. |
|
#8
| |||
| |||
|
Καλησπέρα Σάκη προσοχή στην προέλευση των δεδομένων.. Κώδικας: Private Sub ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ_AfterUpdate()
If IsNull(Me.[ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) Then
Exit Sub
End If
If IsNull(DMax("[AP]", "[tblEispraxi]", "Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ])=" & Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) & _
" and[id_seiraPar]=" & Me.[id_seiraPar] & "and[id_type]=" & Me.[id_type] & "")) Then
MsgBox "Επιλέξτε απο ποιό APιθμό ΠAPαστατικού θέλετε να ξεκινήσει το έτος", vbInformation
Me.AP.BackColor = 10092543
Me.AP.SetFocus
Else
Me.AP = Nz(DMax("[AP]", "[tblEispraxi]", "Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ])=" & Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) & _
" and[id_seiraPar]=" & Me.[id_seiraPar] & "and[id_type]=" & Me.[id_type] & "")) + 1
Me.AP.BackColor = 16777215
End If
End Sub
Private Sub ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ_BeforeUpdate(Cancel As Integer)
If Not IsNull(Me.[ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) Then
If Me.[ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ] < DMax("[ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]", "tblEispraxi", "Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ])=" & Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) & _
" and [id_seiraPar]=" & Me.[id_seiraPar] & " and [id_type]=" & Me.[id_type] & "") Then
MsgBox "Η ημερομηνία δεν μπορεί να είναι μικρότερη των ήδη καταχωρηθεισών για το έτος", vbCritical, "ΠAPακαλώ διορθώστε!!"
Cancel = True
End If
Else
Exit Sub
End If
End Sub
Καλό είναι να κοιτάμε πρώτα την ουσία και μετά την δημιουργία μιας εντυπωσιακής βάσης. Θα μπορούσε να είναι πιό απλή στην κατασκευή της και πιο λειτουργική |
|
#9
| |||
| |||
|
Ok Νάσο αυτό ήθελα, δουλεύει σωστά.Σε ευχαριστώ. Ξέρω ότι κάποια πράγματα που είναι και πέρα από τις γνώσεις και δυνατότητές μου μπορούν να γίνουν και πιο απλά.Παρόλα αυτά ακολουθώ αυτό που μου αρέσει και "αισθητικά" χωρίς να σκεφτώ ότι στην πορεία θα γίνει περίπλοκο.Την εφαρμογή αυτή την δημιούργησα για την έκδοση των δικών μου παραστατικών παρόλο που θα μπορούσα να χρησιμοποιήσω κάποια άλλη εμπορική. Τέλος, αν μπορούσες να δεις το θέμα της επιλογής συνέχισης της αυτόματης αρίθμησης και στο επόμενο έτος χωρίς να ψάχνουμε να βρούμε την τελευταία αρίθμηση θα ήταν ακόμη πιο καλό. |
|
#10
| |||
| |||
|
Private Sub ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ_AfterUpdate() If IsNull(Me.[ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) Then Exit Sub End If Me.AP = Nz(DMax("[AP]", "[tblEispraxi]", "Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ])=" & Year([ΗΜΕΡΟΜΗΝΙΑ_ΧΡΕΩΣΗΣ]) & _ " and[id_seiraPar]=" & Me.[id_seiraPar] & "and[id_type]=" & Me.[id_type] & ""), 0) + 1 End Sub |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Πίνακες ] Αντιγραφή πινάκων από τρέχουσα βάση σε νέα βάση | apostolos | Access - Ερωτήσεις / Απαντήσεις | 11 | 04-03-16 21:43 |
| [ Εκθέσεις ] Ταξινόμηση ημερομηνίας βαση ημερας | lalosjim | Access - Ερωτήσεις / Απαντήσεις | 4 | 05-06-14 17:37 |
| Μεταφορές πινάκων από βάση σε βάση | parara | Access - Ερωτήσεις / Απαντήσεις | 8 | 18-04-14 13:14 |
| [ Ερωτήματα ] ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ | chris1978 | Access - Ερωτήσεις / Απαντήσεις | 15 | 09-12-10 09:59 |
| Format Ημερομηνίας | Jim | Access - Ερωτήσεις / Απαντήσεις | 3 | 25-06-10 17:49 |
Η ώρα είναι 20:04.


Υβριδικός τρόπος

