Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 28-04-14, 16:31
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού 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) Για την εύρεση της τελευταίας τιμής ενός είδους βρίσκουμε όλες τις τιμές του είδους, τις ταξινομούμε κατά φθίνουσα σειρά ως προς την ημερομηνία και επιλέγουμε την πρώτη.

Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AutoFillField.mdb (316,0 KB, 51 εμφανίσεις)
Απάντηση με παράθεση