| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Γειά σας και πάλι. Παραθέτω μια απορια ως προς ενα πόνημα που βρηκα στο forum το οποίο βοηθάει παρα πολύ. http://www.ms-office.gr/forum/access...ma-access.html Η απορία που έχω ειναι η εξης: Οταν δίνω για κάποιο υπάλληλο Ημερομηνια Από π.χ. 17-07-2012 και Ημερομηνία Έως π.χ. 20-07-2012 και επιλέγω ως Τύπο άδειας π.χ. Τιμητική (δεν εχει σημασία) θελω να γίνεται το εξής: Οταν δίνω για τον ίδιο υπάλληλο Ημερομηνια Από π.χ. 18-07-2012 και Ημερομηνία Έως π.χ. 20-07-2012 και επιλέγω ως Τύπο άδειας π.χ. Τιμητική (δεν εχει σημασία) να μην γίνεται αποδεκτο το διαστημα Απο - Εως!!!! Γίνεται αυτό;... ![]() Σας επισυναπτω την εικονα με την οποια δειχνω τι εννοω καθώς επίσης κι ενα πόνημα με το οποίο φαινονται και οι σχεσεις των πινακων Προσωπικου - Αδειων. Ελπίζω να εγινα κατανοητη. Ευχαριστω εκ των προτερων για την απαντηση σας. |
|
#2
| |||
| |||
|
Χριστίνα καλό σου απόγευμα, Στην φόρμα 'Δευτερεύουσα φόρμα QRY_adeies' στο πεδίο 'StartDate' στο συμβάν 'Before Update' βάλε αυτόν τον κώδικα Κώδικας: Dim db As Database
Dim rs As DAO.Recordset
Dim sql As String
Dim msg As String
Dim rscnt As Integer
Dim idpa As Integer
idpa = Me.Parent.ID
sql = "SELECT [Adeies].[ID], Min([Adeies].[StartDate]) AS minStartD," & _
" Max([Adeies].[EndDate]) AS MaxEndD, Year([EndDate]) AS etos" & _
" FROM Adeies" & _
" GROUP BY [Adeies].[ID], Year([EndDate])" & _
"HAVING [Adeies].[ID] = " & idpa & _
" AND Year([StartDate]) = " & Year(Me.StartDate)
Set db = CurrentDb
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
rscnt = rs.RecordCount
If rscnt = 0 Then
rs.close
Set db = Nothing
Set rs = Nothing
Exit Sub
ElseIf Me.StartDate >= rs!minStartD And Me.StartDate <= rs!MaxEndD Then
msg = MsgBox("Ο Συνεργάτης σας 'ΒΑΛΕ ΟΤΙ ΘΕΛΕΙΣ'", _
vbInformation, "Η εφαρμογή σας ενημερώνει ότι..")
Me.Undo
End If
rs.close
Set db = Nothing
Set rs = Nothing
Κώδικας: Dim db As Database
Dim rs As DAO.Recordset
Dim sql As String
Dim msg As String
Dim rscnt As Integer
Dim idpa As Integer
idpa = Me.Parent.ID
sql = "SELECT [Adeies].[ID], Min([Adeies].[StartDate]) AS minStartD," & _
" Max([Adeies].[EndDate]) AS MaxEndD, Year([EndDate]) AS etos" & _
" FROM Adeies" & _
" GROUP BY [Adeies].[ID], Year([EndDate])" & _
"HAVING [Adeies].[ID] = " & idpa & _
" AND Year([EndDate]) = " & Year(Me.EndDate)
Set db = CurrentDb
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
rscnt = rs.RecordCount
If rscnt = 0 Then
rs.Close
Set db = Nothing
Set rs = Nothing
Exit Sub
ElseIf Me.EndDate >= rs!minStartD And Me.EndDate <= rs!MaxEndD Then
msg = MsgBox("Ο Συνεργάτης σας 'ΒΑΛΕ ΟΤΙ ΘΕΛΕΙΣ'", _
vbInformation, "Η εφαρμογή σας ενημερώνει ότι...")
Me.Undo
End If
rs.close
Set db = Nothing
Set rs = Nothing
Τελευταία επεξεργασία από το χρήστη ασχετος : 05-09-12 στις 08:28. |
|
#3
| |||
| |||
|
Χριστίνα καλή σου μέρα, Στον κώδικα που έγραψα, σβήσε τα σημασμένα με πράσινο |
|
#4
| |||
| |||
|
Καλημέρα σε όλους Κοίτα και μια άλλη λύση, σε περίπτωση εισαγωγής ημερομηνία "εντός" πρέπει να ακυρώσεις την εγγραφή με ESC Θανάσης |
|
#5
| ||||
| ||||
|
Καλησπέρα σε όλους! Θα μπορούσε να τροποποιηθεί η μακροεντολή CountDatesPeriod() για να αναιρεί την τελευταία καταχώρηση αν συμπίπτουν οι ημερομηνίες: Κώδικας: Private Sub CountDatesPeriod()
Dim Date1 As Long, Date2 As Long
If IsDate(Me.StartDate) And IsDate(Me.EndDate) Then
If Me.StartDate <= Me.EndDate And Me.StartDate <> 0 Then
Date1 = CLng(Me.StartDate): Date2 = CLng(Me.EndDate)
If DCount("ID", "Adeies", "ID =" & Me.ID & _
" AND (StartDate Between " & Date1 & " And " _
& Date2 & ") Or (" & "EndDate Between " & _
Date1 & " And " & Date2 & ")") Then
MsgBox "Dating in conflict..."
Me.Undo
Else
Me.AbsenceDays = Me.EndDate - Me.StartDate + 1
End If
End If
End If
End Sub
Τάσος Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#6
| |||
| |||
| Παράθεση:
Συγνώμη για την καθυστέρηση της απάντησης. Ακριβώς αυτό ήθελα. Ευχαριστω πολύ!!!!!!!! ![]() Υ.Γ. Ευχαριστώ όλους όσους μπηκαν στον κόπο να απαντησουν στο ερώτημα μου. ![]() ![]() |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Καταμέτρηση αδειων | manolis | Excel - Ερωτήσεις / Απαντήσεις | 9 | 03-11-16 10:20 |
| Διαχείρηση Αδειών | nkouk | Access - Ερωτήσεις / Απαντήσεις | 0 | 31-10-15 17:13 |
| Διαχείριση Πρόσθεσης και Αφαίρεσης Αδειών Εργαζόμενων | marinx08 | Access - Ερωτήσεις / Απαντήσεις | 1 | 11-12-14 18:54 |
| Διαχείριση αδειών | bill72 | Access - Ερωτήσεις / Απαντήσεις | 9 | 13-01-13 16:23 |
| Διαχείριση αδειών - παράδειγμα Access | Ms-Office-Development Team | Access samples - Χρήσιμα αρχεία & παραδείγματα | 0 | 24-05-10 12:44 |
Η ώρα είναι 21:36.





Αλλαγή σε γραμμικό τρόπο

