
28-04-14, 16:31
|
| Όνομα: Γιώργος Έκδοση λογισμικού Office: Ms-Office 2010 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 18-06-2010
Μηνύματα: 3.674
| |
Καλησπέρα
Εύη, δες την επισυναπτόμενη ΒΔ.
Η λύση που προτείνω υλοποιείται με τον παρακάτω κώδικα: Κώδικας: Private Sub Τιμή_Enter()
Dim strSQL As String, rs As DAO.Recordset
On Error GoTo Err_Handel
If Nz(Me.Τιμή, "") = "" Then
If Nz(Me.Είδος, "") <> "" Then
strSQL = "SELECT TOP 1 tblΑγορά.Τιμή FROM tblΑγορά WHERE [Είδος]='" _
& Me.[Είδος] & "' ORDER BY tblΑγορά.Ημερομηνία DESC;"
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.RecordCount > 0 Then
Me.Τιμή = rs.Fields(0).Value
Else
MsgBox "Δεν υπάρχει τιμή για το είδος: " & Me.Είδος
End If
End If
End If
Exit_Sub:
If Not rs Is Nothing Then Set rs = Nothing
Exit Sub
Err_Handel:
MsgBox "Error # " & Err.Number & vbCrLf & Err.Description
Resume Exit_Sub
End Sub
Για την κατανόηση της λογικής του, διευκρινίζω ότι:
1) Η τελευταία τιμή για κάθε είδος λαμβάνεται από τον πίνακα tblΑγορά.
2) Για την εύρεση της τελευταίας τιμής ενός είδους βρίσκουμε όλες τις τιμές του είδους, τις ταξινομούμε κατά φθίνουσα σειρά ως προς την ημερομηνία και επιλέγουμε την πρώτη.
Γιώργος
|