Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 17-09-17, 18:47
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Φίλε Δημήτρη άλλαξε τον παλιό κώδικα του κουμπιού με τον:

Κώδικας:
Private Sub cmdAdd_Click()
    Dim rs As DAO.Recordset, dt As Date, i As Long, sum As Double
    Dim vPeriodos As Variant, strC As String, k As Long

    On Error GoTo errHandler
    'Ελέγχος καταχώρησης αναγκαίων στοιχείων
    If Not ((IsDate(Me.DAYEX) And _
             Nz(Me.KATIGORIAEX, "") <> "") And _
             (Nz(Me.KATASTASIEX, "") <> "") And _
             IsNumeric(Me.ARXEXODA) And _
             IsNumeric(Me.SYNDOSEON) And _
             (Nz(Me.PERIODOS, "") <> "") And _
             IsNumeric(Me.Prokatavoli)) Then
        MsgBox "Σε κάποια πεδία δε δόθηκαν κατάλληλες τιμές"
        Exit Sub
    End If

    'Αποτροπή πολλαπλών καταχωρήσεων
    strC = "DAYEX=#" & Format(Me.DAYEX, "m/d/yyyy") & "# And " & _
           "KATIGORIAEX='" & Me.KATIGORIAEX & "' And " & _
           "KATASTASIEX='" & Me.KATASTASIEX & "' AND ARXEXODA=" & _
           Replace(Me.ARXEXODA, ",", ".") & " And " & _
           "SYNDOSEON=" & Me.SYNDOSEON & " AND PERIODOS='" & Me.PERIODOS & "' And " & _
           "TREXDOSI=1 AND Prokatavoli=" & Replace(Me.Prokatavoli, ",", ".")
    If DCount("*", "tblExoda", strC) Then
        MsgBox "Τα στοιχεία είναι ήδη καταχωρημένα"
        Exit Sub
    End If

    'Καταχώρηση δεδομένων
    vPeriodos = Array(1, 2, 3, 6, 12)
    k = Me.PERIODOS.ListIndex
    Set rs = CurrentDb.OpenRecordset("tblExoda")
    dt = CDate(Me.DAYEX)
    sum = Me.Prokatavoli
    For i = 1 To Me.SYNDOSEON
        rs.AddNew
        rs!DAYEX = DateAdd("m", vPeriodos(k) * (i - 1), dt)
        If i = Me.SYNDOSEON Then
            rs!POSOEX = Me.ARXEXODA - sum
        Else
            rs!POSOEX = Round((Me.ARXEXODA - Me.Prokatavoli) / Me.SYNDOSEON, 2)
            sum = sum + Round((Me.ARXEXODA - Me.Prokatavoli) / Me.SYNDOSEON, 2)
        End If
        rs!KATIGORIAEX = Me.KATIGORIAEX
        rs!KATASTASIEX = Me.KATASTASIEX
        rs!ARXEXODA = Me.ARXEXODA
        rs!SYNDOSEON = Me.SYNDOSEON
        rs!PERIODOS = Me.PERIODOS
        rs!TREXDOSI = i
        rs!Prokatavoli = Me.Prokatavoli
        rs!PERIGRAFIEX = Me.PERIGRAFIEX
        rs.Update
    Next
    MsgBox "Η προσθήκη των εγγραφών ολοκληρώθηκε"
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
End Sub
Απάντηση με παράθεση