04-07-12, 13:00
|
| Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.011
| |
Καλησπέρα!
Ο παρακάτω κώδικας κάνει ακριβώς το ζητούμενο αλλά έχει προσαρμοστεί στη φόρμα " Order Details" του πρότυπου Northwind Database (αγγλικό) που υπάρχει στην έκδοση Access 2007 - 2010.
H φόρμα " Order Details" περιέχει την υποφόρμα " Order Details Extended" στην οποία ανήκει ο παρακάτω κώδικας: Κώδικας: Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim cnt As Long, LngProductID As Long, LngOrderID As Long, LngQty As Long
If Me.NewRecord Then
LngQty = Me.Quantity + 0
LngProductID = Me.Product_ID + 0
LngOrderID = Me.[Order ID] + 0
If LngQty > 0 And LngProductID > 0 Then
cnt = Nz(DSum("[Quantity]", "[Order Details Extended]", _
"[Product ID] =" & LngProductID & " AND [Order ID]= " & LngOrderID))
If cnt = 0 Then Exit Sub
Else
Cancel = True
If LngProductID = 0 Then Me.Product_ID.SetFocus
If LngQty = 0 Then Me.Quantity.SetFocus
Exit Sub
End If
Cancel = True
Me.Undo
CurrentDb.Execute _
"UPDATE [Order Details Extended] SET [Quantity]=" & cnt + LngQty & _
" WHERE [Product ID] =" & LngProductID & " AND [Order ID]= " & LngOrderID
'Με το παρακάτω κομμάτι ενημερώνει και το πεδίο [Extended Price] με τη
'συνάρτηση LngQty * GetListPrice(LngProductID)
'
' Δεν θα λειτουργήσει στη συγκεκριμένη βάση δεδομένων. Δείτε το μόνο σαν παράδειγμα.
'
' CurrentDb.Execute _
' "UPDATE [Order Details Extended] SET [Quantity]=" & cnt + 1 & _
' ", [Extended Price] =" & LngQty * GetListPrice(LngProductID) & _
' " WHERE [Product ID] =" & LngProductID & " AND [Order ID]= " & LngOrderID
Me.Refresh
End If
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 05-07-12 στις 10:05.
Αιτία: Βελτιστοποίηση κώδικα
|