Page d'Accueil

Vue d'ensemble des opérations record 

 

Introduction

Dans la Leçon 13, nous divers moyens de scie de maintenir des disques en utilisant des objets de base de données ou le SQL. Des mêmes manières, les diverses bibliothèques qui se transportent avec le Microsoft Access fournissent leur propre approche. Car vous verrez dans les diverses sections, la bibliothèque des programmes résultants de Microsoft Access et les DAO emploient les mêmes techniques. JET suit la même approche mais ajoute parfois quelques étapes.

Considérer la liste suivante de videos:

 

Étude pratique Étude pratique : Présentation des opérations record

  1. Commencer le Microsoft Access et créer une base de données blanche appelée le grand magasin de Helena
  2. Créer une nouvelle table, dans la section de Tableaux de la fenêtre de base de données, double-cliquent créent le Tableau dans la vue de conception et créent les colonnes suivantes
     
    Nom de champ Type de données Légende D'autres propriétés
    ItemCategoryID AutoNumber Identification de catégorie d'article Clef primaire
    ItemCategory   Catégorie d'article  
  3. Économiser la table comme ItemCategories et le commuter à la vue de Datasheet
  4. Créer les catégories d'article suivant :
     
    Identification de catégorie d'article Catégorie d'article
    1 Femmes
    2 Hommes
    3 Filles
    4 Garçons
    5 Enfants en bas âge
    6 Divers
  5. Fermer la table
  6. Créer une nouvelle table, dans la section de Tableaux de la fenêtre de base de données, double-cliquent créent le Tableau dans la vue de conception et créent les colonnes suivantes :
     
    Nom de champ Type de données Légende Taille de champ D'autres propriétés
    InventoryItemID AutoNumber Identification d'article d'inventaire   Clef primaire
    DateEntered Date/heure Date écrite   Format : Vallée moyenne
    Masque d'entrée : 99 \ - >L<LL \ - 00 ; 0 ; _
    ItemNumber   Article # 10  
    ItemName     80  
    ItemCategoryID        
    ItemSize   Taille d'article    
    OriginalPrice Nombre Prix original Double Format : Fixe
    UnitsInStock Nombre Unités en stock Nombre entier  
  7. Économiser la table comme InventoryItems
  8. Placer le type de données d'ItemCategoryID au magicien de consultation
  9. Dans la première page du magicien, accepter le premier bouton par radio et cliquer après
  10. Dans la deuxième page du magicien, cliquer ItemCategories et cliquer après
  11. Dans les domaines disponibles, double-cliquer ItemCategory et cliquer après
  12. Cliquer après et cliquer la finition
  13. Économiser et fermer la table
  14. Employer le nouvel objet : Le bouton d'AutoForm, produisent d'une forme et la sauvent avec le nom de défaut
  15. Droit-cliquer la forme et cliquer l'en-tête bas de page de forme
  16. Dans la boîte à outils, cliquer le bouton de commande et cliquer la section de titre de bas de page de forme
  17. Suivre le magicien pour créer un bouton utilisé pour fermer la forme. Placer sa légende à la fin et son nom au cmdClose
  18. Changer sa conception comme suit :
     
  19. Économiser et fermer la forme
  20. Dans la section de Tableaux de la fenêtre de base de données, droit-cliquer InventoryItems et cliquer économiser comme…
  21. Dactylographier SaleItems comme nom de la nouvelle table et cliquer BIEN
  22. Droit-cliquer SaleItems et cliquer la vue de conception
  23. Faire les changements suivants (vous retitrerez quelques champs et ajouterez nouveaux autres) :
     
    Nom de champ Type de données Légende Taille de champ D'autres propriétés
    SaleItemID   Identification d'article de vente    
    DateEntered        
    ItemNumber        
    ItemName        
    ItemCategoryID        
    ItemSize        
    MarkedPrice   Prix marqué    
    DiscountRate Nombre Taux d'escompte Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.0775 pour un taux d'imposition fiscal 7.75%
    PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    UnitsInStock Nombre Unités en stock Nombre entier  
  24. Économiser et fermer la table
  25. Créer une nouvelle table, dans la section de Tableaux de la fenêtre de base de données, double-cliquent créent le Tableau dans la vue de conception et créent les colonnes suivantes :
     
    Nom de champ Type de données Légende Taille de champ D'autres propriétés
    CustomerOrderID AutoNumber Identification d'ordre   Clef primaire
    OrderDate Date/heure Date d'ordre   Format : Date moyenne
    Masque d'entrée : 99 \ - >L<LL \ - 00 ; 0 ; _
    Item1Number     10  
    Item1Name     80  
    Item1Size        
    Item1MarkedPrice Nombre   Double Format : Fixe
    Item1DiscountRate Nombre   Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    Item1PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    Item1Quantity Nombre   Nombre entier  
    Item1SubTotal Nombre   Double Format : Fixe
    Item2Number     10  
    Item2Name     80  
    Item2Size        
    Item2MarkedPrice Nombre   Double Format : Fixe
    Item2DiscountRate Nombre   Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    Item2PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    Item2Quantity Nombre   Nombre entier  
    Item2SubTotal Nombre   Double Format : Fixe
    Item3Number     10  
    Item3Name     80  
    Item3Size        
    Item3MarkedPrice Nombre   Double Format : Fixe
    Item3DiscountRate Nombre   Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    Item3PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    Item3Quantity Nombre   Nombre entier  
    Item3SubTotal Nombre   Double Format : Fixe
    Item4Number     10  
    Item4Name     80  
    Item4Size        
    Item4MarkedPrice Nombre   Double Format : Fixe
    Item4DiscountRate Nombre   Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    Item4PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    Item4Quantity Nombre   Nombre entier  
    Item4SubTotal Nombre   Double Format : Fixe
    Item5Number     10  
    Item5Name     80  
    Item5Size        
    Item5MarkedPrice Nombre   Double Format : Fixe
    Item5DiscountRate Nombre   Double Format : Pour cent
    Valeur par défaut : 0
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    Item5PriceAfterDiscount Nombre Escompte des prix Double Format : Fixe
    Item5Quantity Nombre   Nombre entier  
    Item5SubTotal Nombre   Double Format : Fixe
    ItemsTotal Nombre Total d'articles Double Format : Fixe
    SalesTaxRate Nombre Taux de taxe de vente Double Format : Pour cent
    Valeur par défaut : 0.0775
    Règle de validation : <1
    Texte de validation : Écrire une valeur telle que 0.20 pour un escompte de 20%
    OrderTotal Nombre Total d'ordre Double Format : Fixe
  26. Économiser la table comme CustomersOrders et le clôturer
  27. Créer la forme basée sur la table de CustomersOrders
  28. Économiser elle comme CustomersOrders et le concevoir comme suit :
     
  29. Économiser la forme
  30. Sur la forme, cliquer la première boîte des textes au point #
  31. Dans la fenêtre de propriétés, double-cliquer sur le foyer perdu
  32. Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
     
    Private Sub EvaluateOrder()
        Dim dblItemsTotal As Double
        Dim dblTaxAmount As Double
        Dim dblNetPrice As Double
        
        dblItemsTotal = Val(Nz([Item1SubTotal]) + Nz([Item2SubTotal]) + _
                           Nz([Item3SubTotal]) + Nz([Item4SubTotal]) + _
                           Nz([Item5SubTotal]))
        dblTaxAmount = CLng(dblItemsTotal * Nz([SalesTaxRate]) * 100) / 100
        dblNetPrice = dblItemsTotal + dblTaxAmount
        
        Me.ItemsTotal = dblItemsTotal
        Me.SalesTaxAmount = dblTaxAmount
        Me.OrderTotal = dblNetPrice
    End Sub
    
    Private Sub Item1Number_LostFocus()
    On Error GoTo ErrorOccurred
        
        If Not IsNull(DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item1Number & "'")) Then
            [Item1Name] = DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item1Number & "'")
            [Item1Size] = DLookup("ItemSize", "SaleItems", "ItemNumber = '" & Item1Number & "'")
            [Item1MarkedPrice] = DLookup("MarkedPrice", "SaleItems", "ItemNumber = '" & Item1Number & "'")
            [Item1DiscountRate] = DLookup("DiscountRate", "SaleItems", "ItemNumber = '" & Item1Number & "'")
            [Item1PriceAfterDiscount] = CDbl([Item1MarkedPrice]) - CLng(Nz([Item1MarkedPrice]) * Nz([Item1DiscountRate]) * 100) / 100
            [Item1Quantity] = "1"
            [Item1SubTotal] = [Item1PriceAfterDiscount]
            
            EvaluateOrder
        Else
            [Item1Number] = "000000"
            [Item1Name] = "Miscellaneous"
            [Item1Size] = "N/A"
            [Item1MarkedPrice] = "0.00"
            [Item1DiscountRate] = "0.00%"
            [Item1PriceAfterDiscount] = "0.00"
            [Item1Quantity] = "0"
            [Item1SubTotal] = "0.00"
            [Item1Name].SetFocus
        End If
    
    GetOuttaHere:
        Exit Sub
        
    ErrorOccurred:
        If Err.Number = -2147352567 Then
            Resume GetOuttaHere
        Else
            MsgBox "An error occured when retrieving the product information" & vbCrLf & _
                   "Please call the program vendor and report the error as follows:" & vbCrLf & _
                   "Error #: " & Err.Number & vbCrLf & _
                   "Reason:  " & Err.Description
            Resume Next
        End If
    End Sub
  33. Revenir au Microsoft Access et, sur la forme, cliquer la deuxième boîte des textes au point #
  34. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item2Number_LostFocus()
    On Error GoTo ErrorOccurred
        
        If Not IsNull(DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item2Number & "'")) Then
            [Item2Name] = DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item2Number & "'")
            [Item2Size] = DLookup("ItemSize", "SaleItems", "ItemNumber = '" & Item2Number & "'")
            [Item2MarkedPrice] = DLookup("MarkedPrice", "SaleItems", "ItemNumber = '" & Item2Number & "'")
            [Item2DiscountRate] = DLookup("DiscountRate", "SaleItems", "ItemNumber = '" & Item2Number & "'")
            [Item2PriceAfterDiscount] = CDbl([Item2MarkedPrice]) - CLng(Nz([Item2MarkedPrice]) * Nz([Item2DiscountRate]) * 100) / 100
            [Item2Quantity] = "1"
            [Item2SubTotal] = [Item2PriceAfterDiscount]
            
            EvaluateOrder
        Else
            [Item2Number] = "000000"
            [Item2Name] = "Miscellaneous"
            [Item2Size] = "N/A"
            [Item2MarkedPrice] = "0.00"
            [Item2DiscountRate] = "0.00%"
            [Item2PriceAfterDiscount] = "0.00"
            [Item2Quantity] = "0"
            [Item2SubTotal] = "0.00"
            [Item2Name].SetFocus
        End If
    
    GetOuttaHere:
        Exit Sub
        
    ErrorOccurred:
        If Err.Number = -2147352567 Then
            Resume GetOuttaHere
        Else
            MsgBox "An error occured when retrieving the product information" & vbCrLf & _
                   "Please call the program vendor and report the error as follows:" & vbCrLf & _
                   "Error #: " & Err.Number & vbCrLf & _
                   "Reason:  " & Err.Description
            Resume Next
        End If
    End Sub
  35. Revenir au Microsoft Access et, sur la forme, cliquer la troisième boîte des textes au point #
  36. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item3Number_LostFocus()
    On Error GoTo ErrorOccurred
        
        If Not IsNull(DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item3Number & "'")) Then
            [Item3Name] = DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item3Number & "'")
            [Item3Size] = DLookup("ItemSize", "SaleItems", "ItemNumber = '" & Item3Number & "'")
            [Item3MarkedPrice] = DLookup("MarkedPrice", "SaleItems", "ItemNumber = '" & Item3Number & "'")
            [Item3DiscountRate] = DLookup("DiscountRate", "SaleItems", "ItemNumber = '" & Item3Number & "'")
            [Item3PriceAfterDiscount] = CDbl([Item3MarkedPrice]) - CLng(Nz([Item3MarkedPrice]) * Nz([Item3DiscountRate]) * 100) / 100
            [Item3Quantity] = "1"
            [Item3SubTotal] = [Item3PriceAfterDiscount]
            
            EvaluateOrder
        Else
            [Item3Number] = "000000"
            [Item3Name] = "Miscellaneous"
            [Item3Size] = "N/A"
            [Item3MarkedPrice] = "0.00"
            [Item3DiscountRate] = "0.00%"
            [Item3PriceAfterDiscount] = "0.00"
            [Item3Quantity] = "0"
            [Item3SubTotal] = "0.00"
            [Item3Name].SetFocus
        End If
    
    GetOuttaHere:
        Exit Sub
        
    ErrorOccurred:
        If Err.Number = -2147352567 Then
            Resume GetOuttaHere
        Else
            MsgBox "An error occured when retrieving the product information" & vbCrLf & _
                   "Please call the program vendor and report the error as follows:" & vbCrLf & _
                   "Error #: " & Err.Number & vbCrLf & _
                   "Reason:  " & Err.Description
            Resume Next
        End If
    End Sub
  37. Revenir au Microsoft Access et, sur la forme, cliquer la quatrième boîte des textes au point #
  38. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item4Number_LostFocus()
    On Error GoTo ErrorOccurred
        
        If Not IsNull(DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item4Number & "'")) Then
            [Item4Name] = DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item4Number & "'")
            [Item4Size] = DLookup("ItemSize", "SaleItems", "ItemNumber = '" & Item4Number & "'")
            [Item4MarkedPrice] = DLookup("MarkedPrice", "SaleItems", "ItemNumber = '" & Item4Number & "'")
            [Item4DiscountRate] = DLookup("DiscountRate", "SaleItems", "ItemNumber = '" & Item4Number & "'")
            [Item4PriceAfterDiscount] = CDbl([Item4MarkedPrice]) - CLng(Nz([Item4MarkedPrice]) * Nz([Item4DiscountRate]) * 100) / 100
            [Item4Quantity] = "1"
            [Item4SubTotal] = [Item4PriceAfterDiscount]
            
            EvaluateOrder
        Else
            [Item4Number] = "000000"
            [Item4Name] = "Miscellaneous"
            [Item4Size] = "N/A"
            [Item4MarkedPrice] = "0.00"
            [Item4DiscountRate] = "0.00%"
            [Item4PriceAfterDiscount] = "0.00"
            [Item4Quantity] = "0"
            [Item4SubTotal] = "0.00"
            [Item4Name].SetFocus
        End If
    
    GetOuttaHere:
        Exit Sub
        
    ErrorOccurred:
        If Err.Number = -2147352567 Then
            Resume GetOuttaHere
        Else
            MsgBox "An error occured when retrieving the product information" & vbCrLf & _
                   "Please call the program vendor and report the error as follows:" & vbCrLf & _
                   "Error #: " & Err.Number & vbCrLf & _
                   "Reason:  " & Err.Description
            Resume Next
        End If
    End Sub
  39. Revenir au Microsoft Access et, sur la forme, cliquer la cinquième boîte des textes au point #
  40. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item5Number_LostFocus()
    On Error GoTo ErrorOccurred
        
        If Not IsNull(DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item5Number & "'")) Then
            [Item5Name] = DLookup("ItemName", "SaleItems", "ItemNumber = '" & Item5Number & "'")
            [Item5Size] = DLookup("ItemSize", "SaleItems", "ItemNumber = '" & Item5Number & "'")
            [Item5MarkedPrice] = DLookup("MarkedPrice", "SaleItems", "ItemNumber = '" & Item5Number & "'")
            [Item5DiscountRate] = DLookup("DiscountRate", "SaleItems", "ItemNumber = '" & Item5Number & "'")
            [Item5PriceAfterDiscount] = CDbl([Item5MarkedPrice]) - CLng(Nz([Item5MarkedPrice]) * Nz([Item5DiscountRate]) * 100) / 100
            [Item5Quantity] = "1"
            [Item5SubTotal] = [Item5PriceAfterDiscount]
            
            EvaluateOrder
        Else
            [Item5Number] = "000000"
            [Item5Name] = "Miscellaneous"
            [Item5Size] = "N/A"
            [Item5MarkedPrice] = "0.00"
            [Item5DiscountRate] = "0.00%"
            [Item5PriceAfterDiscount] = "0.00"
            [Item5Quantity] = "0"
            [Item5SubTotal] = "0.00"
            [Item5Name].SetFocus
        End If
    
    GetOuttaHere:
        Exit Sub
        
    ErrorOccurred:
        If Err.Number = -2147352567 Then
            Resume GetOuttaHere
        Else
            MsgBox "An error occured when retrieving the product information" & vbCrLf & _
                   "Please call the program vendor and report the error as follows:" & vbCrLf & _
                   "Error #: " & Err.Number & vbCrLf & _
                   "Reason:  " & Err.Description
            Resume Next
        End If
    End Sub
  41. Revenir à la forme et la sauver
  42. Sur la forme, cliquer la première boîte des textes sous le prix marqué
  43. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item1MarkedPrice_LostFocus()
        Dim dblMarkedPrice As Double
        Dim dblDiscountRate As Double
        Dim dblDiscountAmount As Double
        Dim dblPriceAfterDicsount As Double
        Dim intQuantity As Integer
        Dim dblSubTotal As Double
        
        ' Get the current (marked) price of the item, in case the clerk changed it
        dblMarkedPrice = CDbl(Nz(Me.Item1MarkedPrice))
        ' Get the discount rate, whether it was entered automatically or manually
        dblDiscountRate = CDbl(Nz(Me.Item1DiscountRate))
        ' Calculate the amount of the discount based on the unit price and the rate
        dblDiscountAmount = CLng(dblMarkedPrice * dblDiscountRate * 100) / 100
        ' Subtract the discount amount, if any, from the marked price
        dblPriceAfterDicsount = dblMarkedPrice - dblDiscountAmount
        ' Get the quantity order by the customer
        intQuantity = CInt(Nz(Me.Item1Quantity))
        ' Calcute the sub-total based on the discounted price and the quantity
        dblSubTotal = dblPriceAfterDicsount * intQuantity
        
        ' Display the values in the appropriate text boxes
        Me.Item1PriceAfterDiscount = dblPriceAfterDicsount
        Me.Item1SubTotal = dblSubTotal
        
        ' Re-calculate the order if necessary
        EvaluateOrder
    End Sub
  44. Revenir au Microsoft Access et, sur la forme, cliquer la deuxième boîte des textes sous le prix marqué
  45. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item2MarkedPrice_LostFocus()
        Dim dblMarkedPrice As Double
        Dim dblDiscountRate As Double
        Dim dblDiscountAmount As Double
        Dim dblPriceAfterDicsount As Double
        Dim intQuantity As Integer
        Dim dblSubTotal As Double
        
        dblMarkedPrice = CDbl(Nz(Me.Item2MarkedPrice))
        dblDiscountRate = CDbl(Nz(Me.Item2DiscountRate))
        dblDiscountAmount = CLng(dblMarkedPrice * dblDiscountRate * 100) / 100
        dblPriceAfterDicsount = dblMarkedPrice - dblDiscountAmount
        intQuantity = CInt(Nz(Me.Item2Quantity))
        dblSubTotal = dblPriceAfterDicsount * intQuantity
        
        Me.Item2PriceAfterDiscount = dblPriceAfterDicsount
        Me.Item2SubTotal = dblSubTotal
        EvaluateOrder
    End Sub
  46. Revenir au Microsoft Access et, sur la forme, cliquer la troisième boîte des textes sous le prix marqué
  47. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item3MarkedPrice_LostFocus()
        Dim dblMarkedPrice As Double
        Dim dblDiscountRate As Double
        Dim dblDiscountAmount As Double
        Dim dblPriceAfterDicsount As Double
        Dim intQuantity As Integer
        Dim dblSubTotal As Double
        
        dblMarkedPrice = CDbl(Nz(Me.Item3MarkedPrice))
        dblDiscountRate = CDbl(Nz(Me.Item3DiscountRate))
        dblDiscountAmount = CLng(dblMarkedPrice * dblDiscountRate * 100) / 100
        dblPriceAfterDicsount = dblMarkedPrice - dblDiscountAmount
        intQuantity = CInt(Nz(Me.Item3Quantity))
        dblSubTotal = dblPriceAfterDicsount * intQuantity
        
        Me.Item3PriceAfterDiscount = dblPriceAfterDicsount
        Me.Item3SubTotal = dblSubTotal
        EvaluateOrder
    End Sub
  48. Revenir au Microsoft Access et, sur la forme, cliquer la quatrième boîte des textes sous le prix marqué
  49. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item4MarkedPrice_LostFocus()
        Dim dblMarkedPrice As Double
        Dim dblDiscountRate As Double
        Dim dblDiscountAmount As Double
        Dim dblPriceAfterDicsount As Double
        Dim intQuantity As Integer
        Dim dblSubTotal As Double
        
        dblMarkedPrice = CDbl(Nz(Me.Item4MarkedPrice))
        dblDiscountRate = CDbl(Nz(Me.Item4DiscountRate))
        dblDiscountAmount = CLng(dblMarkedPrice * dblDiscountRate * 100) / 100
        dblPriceAfterDicsount = dblMarkedPrice - dblDiscountAmount
        intQuantity = CInt(Nz(Me.Item4Quantity))
        dblSubTotal = dblPriceAfterDicsount * intQuantity
        
        Me.Item4PriceAfterDiscount = dblPriceAfterDicsount
        Me.Item4SubTotal = dblSubTotal
        EvaluateOrder
    End Sub
  50. Revenir au Microsoft Access et, sur la forme, cliquer la cinquième boîte des textes sous le prix marqué
  51. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item5MarkedPrice_LostFocus()
        Dim dblMarkedPrice As Double
        Dim dblDiscountRate As Double
        Dim dblDiscountAmount As Double
        Dim dblPriceAfterDicsount As Double
        Dim intQuantity As Integer
        Dim dblSubTotal As Double
        
        dblMarkedPrice = CDbl(Nz(Me.Item5MarkedPrice))
        dblDiscountRate = CDbl(Nz(Me.Item5DiscountRate))
        dblDiscountAmount = CLng(dblMarkedPrice * dblDiscountRate * 100) / 100
        dblPriceAfterDicsount = dblMarkedPrice - dblDiscountAmount
        intQuantity = CInt(Nz(Me.Item5Quantity))
        dblSubTotal = dblPriceAfterDicsount * intQuantity
        
        Me.Item5PriceAfterDiscount = dblPriceAfterDicsount
        Me.Item5SubTotal = dblSubTotal
        EvaluateOrder
    End Sub
  52. Revenir à la forme et la sauver
  53. Sur la forme, cliquer la première boîte des textes sous le taux d'escompte
  54. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item1DiscountRate_LostFocus()
        Item1MarkedPrice_LostFocus
    End Sub
  55. Revenir au Microsoft Access et, sur la forme, cliquer la deuxième boîte des textes sous la quantité
  56. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item2DiscountRate_LostFocus()
        Item2MarkedPrice_LostFocus
    End Sub
  57. Revenir au Microsoft Access et, sur la forme, cliquer la troisième boîte des textes sous la quantité
  58. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item3DiscountRate_LostFocus()
        Item3MarkedPrice_LostFocus
    End Sub
  59. Revenir au Microsoft Access et, sur la forme, cliquer la quatrième boîte des textes sous la quantité
  60. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item4DiscountRate_LostFocus()
        Item4MarkedPrice_LostFocus
    End Sub
  61. Revenir au Microsoft Access et, sur la forme, cliquer la cinquième boîte des textes sous la quantité
  62. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item5DiscountRate_LostFocus()
        Item5MarkedPrice_LostFocus
    End Sub
  63. Revenir à la forme et la sauver
  64. Sur la forme, cliquer la première boîte des textes sous la quantité
  65. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item1Quantity_LostFocus()
        Item1MarkedPrice_LostFocus
    End Sub
  66. Revenir au Microsoft Access et, sur la forme, cliquer la deuxième boîte des textes sous la quantité
  67. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item2Quantity_LostFocus()
        Item2MarkedPrice_LostFocus
    End Sub
  68. Revenir au Microsoft Access et, sur la forme, cliquer la troisième boîte des textes sous la quantité
  69. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item3Quantity_LostFocus()
        Item3MarkedPrice_LostFocus
    End Sub
  70. Revenir au Microsoft Access et, sur la forme, cliquer la quatrième boîte des textes sous la quantité
  71. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item4Quantity_LostFocus()
        Item4MarkedPrice_LostFocus
    End Sub
  72. Revenir au Microsoft Access et, sur la forme, cliquer la cinquième boîte des textes sous la quantité
  73. Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu et cliquer son bouton de points de suspension pour mettre en application l'événement comme suit :
     
    Private Sub Item5Quantity_LostFocus()
        Item5MarkedPrice_LostFocus
    End Sub
  74. Revenir à la forme et la sauver
  75. Dans la fenêtre de base de données, cliquer les formes.
    Créer une nouvelle forme, dans la section de formes de la fenêtre de base de données, double-cliquent créent la forme dans la vue de conception
  76. Économiser la forme comme NewInventoryItem
  77. Concevoir la forme comme suit :
     
    Commander Légende Nom Propriétés additionnelles
    Boîte des textes La date est entrée : txtDateEntered Format : Date moyenne
    Masque d'entrée : 99 \ - >L<LL \ - 00 ; 0 ; _
    Boîte des textes Nombre d'article : txtItemNumber  
    Boîte des textes Nom d'article : txtItemName  
    Boîte des textes Taille d'article : txtItemSize  
    Boîte des textes Prix original : txtOriginalPrice Format : Fixe
    Boîte des textes Unités en stock : txtUnitsInStock Format : Nombre général
    Positions décimales : 0
  78. Économiser la forme
  79. Sur la boîte à outils, s'assurer que le bouton de magicien de commande est vers le bas.
    Cliquer la boîte Combo et cliquer la section entre le txtItemName et txtItemSize les boîtes des textes
  80. À la première page du magicien, accepter le premier bouton par radio et cliquer après
  81. À la deuxième page, cliquer ItemCategories et cliquer après
  82. Dans la liste disponible de champs de la troisième page, double-cliquer ItemCategory et cliquer après
  83. Cliquer après et cliquer la finition
  84. Changer la légende de la nouvelle étiquette en catégorie d'article :
  85. Changer le nom de la boîte combo en cboItemCategoryID
     
  86. Droit-cliquer n'importe où sous la barre de détail et cliquer l'ordre d'étiquette
  87. Cliquer l'ordre automatique et cliquer BIEN
  88. Économiser la forme et la commuter à la vue de forme à la prévision
  89. La commuter de nouveau à la vue de conception
  90. Sur la boîte à outils, cliquer le bouton de commande et cliquer la section gauche de la barre de titre de bas de page de forme. If/when les débuts de magicien, annulation de clic
  91. Placer la légende de bouton pour soumettre et son nom au cmdSubmit
  92. Sur la boîte à outils, cliquer le bouton de commande et cliquer la section gauche de la barre de titre de bas de page de forme. If/when les débuts de magicien, annulation de clic
  93. Placer la légende de bouton à la remise et son nom au cmdReset
  94. Sur la boîte à outils, cliquer le bouton de commande et cliquer la section gauche de la barre de titre de bas de page de forme
  95. Suivre le magicien pour créer un bouton utilisé pour fermer la forme. Placer la légende du bouton à la fin et placer son nom au cmdClose
  96. Arranger les positions des boutons comme vous voyez l'ajustement. Voici un exemple :
     
  97. Économiser et fermer la forme
  98. Dans la section de formes de la fenêtre de base de données, le clic NewInventoryItem de droite et le clic économisent comme…
  99. Dactylographier InventoryItemUpdate comme nom des nouvelles formes et cliquer BIEN
  100. Ajouter une boîte de contrôle à la forme et placer son nom aux chkUpdateSales
  101. Changer la légende de l'étiquette de accompagnement en article de ventes de mise à jour en outre
  102. Changer la valeur du bouton de soumission comme suit :
    Légende : Soumettre le changement
    Nom : cmdSubmitChange
  103. Économiser la forme
     
  104. Économiser la forme
 

Endroit record

Comme mentionné dans la Leçon 13 sur l'entretien record, l'édition d'un disque se compose changer la valeur d'une ou plusieurs colonnes. Comme fait visuellement en utilisant une table, une question ou une forme, sur un ensemble record, éditant un disque est faite dans diverses étapes. D'abord, vous devez localiser le disque. Si vous savez exactement l'index du disque qui contient la valeur vous voulez éditer, vous pouvez appeler la méthode de mouvement () pour sauter à elle. De la table ci-dessus, imaginer que vous avez finalement découvert le nom du directeur de la vidéo intitulée le Congo. En regardant la table, nous voyons que c'est la 7ème vidéo comme indiqué par la boîte des textes sur la barre de statut. Avant d'éditer la valeur, vous pouvez d'abord sauter au numéro record 6. Voici un exemple qui emploient la bibliothèque des programmes résultants de Microsoft Access :

Private Sub cmdMovePosition_Click()
   Dim dbVideoCollection As Object
   Dim rstVideos As Object

   Set dbVideoCollection = CurrentDb
   Set rstVideos = dbVideoCollection.OpenRecordset("Videos")

   rstVideos.Move 6
End Sub

Bien que ceci emploie la bibliothèque des programmes résultants de Microsoft Access, vous pouvez également l'appliquer à DAO en changeant simplement les noms des objets en les appropriés :

Private Sub cmdMovePosition_Click()
   Dim dbVideoCollection As DAO.Database
   Dim rstVideos As DAO.Recordset

   Set dbVideoCollection = CurrentDb
   Set rstVideos = dbVideoCollection.OpenRecordset("Videos")

   rstVideos.Move 6
End Sub

Nous avons également vu que vous pourriez appeler un de l'autre des méthodes Déplacer-orientées (MoveFirst (), MovePrevious (), MoveNext (), ou MoveLast ()). Une fois que vous obtenez à un disque, vous pouvez alors effectuer l'opération nécessaire. Par exemple, vous pouvez rechercher les valeurs tenues par ce disque.

Étude pratique Étude pratique : Localiser un disque

  1. Sur la forme d'InventoryItemUpdate dans la vue de conception, cliquer la boîte des textes de txtItemNumber pour la choisir
  2. Dans la fenêtre de propriétés, cliquer les événements et double-cliquer sur le foyer perdu
  3. Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
     
    Private Sub txtItemNumber_LostFocus()
        Dim rstInventoryItems As ADODB.Recordset
        Dim blnFound As Boolean
        ' This flag will allow us to know whether the item number was found
        Dim fldItem As ADODB.Field
        
        ' Since we are only starting, we assume that no item number has been found
        blnFound = False
        
        ' If there is no value in the Item Number text box, don't do nothing
        If Me.txtItemNumber = "" Then Exit Sub
        
        Set rstInventoryItems = New ADODB.Recordset
        rstInventoryItems.Open "SELECT * FROM InventoryItems WHERE ItemNumber = '" & txtItemNumber & "'", _
                               CurrentProject.Connection, _
                               adOpenStatic, adLockReadOnly, adCmdText
      
        With rstInventoryItems
            ' Check each record
            While Not .EOF
                ' Check the name of the column
                For Each fldItem In .Fields
                    ' If the current column is ItemNumber
                    If fldItem.Name = "ItemNumber" Then
                        ' Check its value
                        ' If the current column holds the item number that the user entered
                        If fldItem.Value = txtItemNumber Then
                            ' ... then get the record and display its values in the controls
                            Me.txtItemName = rstInventoryItems.Fields("ItemName")
                            Me.cboItemCategoryID = rstInventoryItems.Fields("ItemCategoryID")
                            Me.txtItemSize = rstInventoryItems.Fields("ItemSize")
                            Me.txtOriginalPrice = rstInventoryItems.Fields("OriginalPrice")
                            Me.txtUnitsInStock = rstInventoryItems.Fields("UnitsInStock")
                            ' Set the found flag to true (we will use it later on)
                            blnFound = True
                        End If
                    End If
                Next
                ' In case you didn't find it, move to the next record
                .MoveNext
            Wend
        End With
        
        ' If the item number was not found, ...
        If blnFound = False Then
            ' ... let the user know, ...
            ' MsgBox "The item number you entered is not in our list of products"
            ' ... and reset the form
            cmdReset_Click
            Me.txtItemNumber.SetFocus
        End If
                            
        rstInventoryItems.Close
        Set rstInventoryItems = Nothing
    End Sub
  4. Revenir à la forme et la sauver

Précédent Copyright © Yevol, 2007 Suivant