|
Quand ou toutes les boîtes horizontales ont été couvertes ou l'utilisateur décide simplement de se déplacer à une autre gamme horizontale des boîtes, on dit que lui ou elle crée un
disque. En résumé, un disque est une série des mêmes boîtes horizontales. Un disque est représenté réellement comme rangée. L'intersection d'une colonne et d'une rangée s'appelle une cellule. Ceci signifie que des données sont saisies réellement dans des cellules.
|
Par défaut, si vous produisez d'une forme basée sur une table et destinée à la saisie de données, tous les disques seraient accessibles. Quand il est temps d'ajouter un nouveau disque, l'utilisateur doit se déplacer d'un disque à vide. Une alternative est de créer une forme particulièrement faite pour la saisie de données. Ce type de forme est soulevé avec des commandes vides et s'attend à ce que l'utilisateur écrive simplement les nouvelles valeurs.
Pour créer une forme pour la saisie en ligne, vous avez beaucoup de solutions de rechange. Une des techniques que vous pouvez employer pour créer une forme d'entrée-seulement de données est comme suit :
- Produire d'une forme basée sur la table qui tient l'information
- Placer sa propriété de boutons de navigation au non et sa propriété de saisie de données à oui
|
Vous pouvez également permettre à l'utilisateur d'ouvrir une forme pour la saisie de données, c'est-à-dire, à un nouveau disque. Pour faire ceci, vous pouvez appeler la méthode de GoToRecord () d'objet de DoCmd. La syntaxe de cette méthode est :
GoToRecord(ObjectType, ObjectName, Record, Offset)
Le premier argument à cette méthode doit être une valeur constante. Dans ce cas-ci, ce serait acDataForm. Si vous l'appelez pour agir sur la forme courante, vous pouvez placer cet argument à l'acActiveDataObject. Dans ce cas-ci, vous pouvez omettre cet argument.
Le deuxième argument est le nom de la forme à laquelle le nouveau disque sera ajouté. Si le disque est ajouté à la même forme qui fait l'appel, vous pouvez omettre cet argument.
Le troisième argument indique l'action qui serait effectuée. Cet argument tient une valeur constante. Dans le cas d'ajouter un nouveau disque, la valeur de cet argument serait acNewRec.
Le dernier argument doit faire avec d'autres valeurs du troisième argument.
Voici un exemple qui ouvre une forme appelée Customers à un nouveau disque :
Private Sub cmdAddCustomer_Click()
DoCmd.OpenForm "Customers1"
DoCmd.GoToRecord acDataForm, "Customers", acNewRec
End Sub
Au lieu d'écrire ce code, vous pouvez employer le magicien de bouton de commande où vous choisiriez des opérations record suivies ajoutez le nouveau disque.
|
Étude pratique : Créer une grille de saisie de données
|
|
- Ouvrir la base de données GCS2 que vous avez créée dans la leçon précédente
- Dans la section de formes de la fenêtre de base de données, droit-cliquer CleaningOrders et cliquer économiser comme…
- Sous la forme dans la boîte des textes, changer le nom en NewCleaningOrder et cliquer BIEN
- Droit-cliquer NewCleaningOrder et cliquer la vue de conception
- Double-cliquer le bouton à l'intersection des deux règles l'accès la fenêtre de propriétés pour la forme et, dans la toute l'étiquette, changer les propriétés comme suit :
Légende : Services de nettoyage de Georgetown - nouvel ordre de nettoyage Saisie de données : Oui
Boutons de navigation : Non
- Commuter la forme à la vue de forme

- Économiser la forme
- Téléphone de client de clic
- Type 1026882250 et étiquette de pression
- Le nom de client, introduire au clavier Telanie Marba
- Cliquer la flèche de la date à gauche et choisir des données qui correspondent au 12 juin 2002
- Placer l'Heure gauche à 10:15 AM
- Fixer la date prévue en ajoutant 1 jour à la date à gauche
- Placer l'Heure prévue à 8AM
- Cliquer le taux d'imposition fiscal et le type 0.0575
- Exécuter la commande de nettoyage avec les valeurs suivantes :
| Article |
Prix unitaire |
Quantité |
| Chemises |
1.75 |
4 |
| Pantalon |
2.65 |
2 |
| Veste |
3.25 |
1 |
| Cravate |
2.25 |
5 |
- Fermer la forme
|
Saisie de SQL et de données |
|
Avec le SQL, avant d'exécuter la saisie de données sur une table, vous devez savoir la table est structurée, l'ordre de ses colonnes, le type de données en lesquelles on fait chaque colonne : elle est certainement indésirable pour avoir une valeur numérique car quelqu'un prénom.
Avant d'exécuter la saisie de données, vous devez s'assurer que la table existe. Autrement, vous recevriez une erreur 3192 :

Pour saisir des données dans une table, vous commencez par l'INSERTION combinée avec les mots-clés de VALEURS. Le rapport emploie la syntaxe suivante :
INSERT TableName VALUES(Column1, Column2, Column_n)
Alternativement, ou pour être plus précis, vous pouvez indiquer que vous saisissez des données dans employer de table DANS le mot-clé entre le mot-clé d'INSERTION et le facteur de TableName. Ceci est fait avec la syntaxe suivante :
INSERT INTO TableName VALUES(Column1, Column2, Column_n)
Le facteur de TableName doit être un nom valide d'une table existante dans la base de données actuellement choisie. Si le nom est erroné, l'interprète de SQL considérerait simplement que la table que vous vous référez n'existe pas. En conséquence, vous recevriez une erreur.
|
Le mot-clé de VALEURS indique que vous êtes prêt à énumérer les valeurs des colonnes. Les valeurs des colonnes doivent être incluses entre parenthèses. Indiquer la valeur de chaque colonne dans les parenthèses qui suivent le mot-clé de VALEURS.
Si la colonne Booléen-est basée, vous devez indiquer sa valeur en tant que 0 ou 1.
Si la colonne est un type numérique, vous devriez prêter l'attention au nombre que vous dactylographiez. Si le nombre est un nombre entier, vous devriez fournir un nombre normal valide sans séparateur décimal. Si la colonne est pour un nombre décimal, vous pouvez dactylographier la valeur avec son séparateur de caractère (la période pour l'anglais des USA).
|
|
Si le type de données d'une colonne est un type de corde, vous devriez inclure sa valeur entre double-cite si vous employez la méthode de DoCmd.RunSQL () de Microsoft Access ou vous l'incluez dans simple-cite si vous employez l'AGITATION. Par exemple, un nombre d'étagère peut être indiqué comme « HHR-604 » pour DoCmd.RunSQL () ou « HHR-604 » pour l'AGITATION et une initiale moyenne peut être donné comme « D » pour le Microsoft Access ou « D » pour l'AGITATION.
Si la colonne était créée pour une date ou un type de données de temps, vous devriez/devez employer une formule appropriée avec l'année représentée par 2 ou 4 chiffres. Vous devriez également inclure la date dans simple-cite. Si vous voulez indiquer l'année avec 2 chiffres, employer la formule :
'yy-mm-dd'
Ou
'yy/mm/dd' Vous pouvez employer le symbole de tiret « - » ou « vers l'avant d'estafilade/ » comme séparateur de date. L'année, le mois, et le jour mettent en boîte chacune soient indiqués avec un chiffre simple. Quand l'année est indiquée avec 1 chiffre, son nombre est ajouté à la décennie courante. Par exemple, une année avec 6 est représentée en tant que 2006. La formule d'une année de chiffre convient pendant une date qui se produit dans la décennie courante. Comme vous pouvez deviner, il vaut mieux de représenter une date avec au moins deux chiffres, y compris un 0 principal. La formule de deux ans de chiffre convient pendant une date qui se produit en siècle courant.
Une alternative à représenter une année est avec 4 chiffres. Dans ce cas-ci, vous emploieriez les formules :
'yyyy-mm-dd'
Ou
'yyyy/mm/dd'
L'année avec 4 chiffres est plus précise car elle exprime correctement une année complète.
Un mois à partir de janvier à septembre peut être représenté en tant que 1, 2, 3, 4, 5, 6, 7, 8, ou 9. Les nombres de jour suivent la même logique.
|
Étude pratique : Présentation de la saisie de données de SQL
|
|
- Pour créer une nouvelle base de données, sur le menu principal, dossier de clic - > nouveau…
-
Dans la nouvelle zone de dialogue, cliquer la base de données et cliquer BIEN
- Changer le nom de la base de données en automobile Shop1 de parc d'université et changer la chemise dans l'économiser dans la boîte combo en chemise qui contient vos exercices
- Le clic créent
- Pour créer une nouvelle table, sur le menu principal, insertion de clic - > Tableau
- Dans la nouvelle zone de dialogue de Tableau, cliquer le magicien de Tableau et cliquer BIEN
- Dans les Tableaux témoin, cliquer les ordres
- Dans les domaines témoin, double-cliquer OrderID et le clic retitrent le champ
- Dactylographier RepairOrderID et la pression entrent
- Cliquer après et changer le nom en RepairOrders
- Cliquer après
- Cliquer la modification le bouton par radio de conception de Tableau et cliquer la finition
- Accomplir la table avec les champs suivants (ne pas changer les propriétés qui ne sont pas indiquées) :
| Nom de champ |
Type de données |
Légende |
| RepairOrderID |
|
Nombre de reçu |
| CustomerName |
|
Nom |
| CustomerAddress |
|
Adresse |
| CustomerCity |
|
Ville |
| CustomerState |
|
État |
| CustomerZIPCode |
|
Code postal |
| CarMakeModel |
|
Faire/modèle |
| CarYear |
|
Année |
| ProblemDescription |
Note |
|
| Part1Name |
|
|
| Part1UnitPrice |
Nombre |
|
| Part1Quantity |
Nombre |
|
| Part1SubTotal |
Nombre |
|
| Part2Name |
|
|
| Part2UnitPrice |
Nombre |
|
| Part2Quantity |
Nombre |
|
| Part2SubTotal |
Nombre |
|
| Part3Name |
|
|
| Part3UnitPrice |
Nombre |
|
| Part3Quantity |
Nombre |
|
| Part3SubTotal |
Nombre |
|
| Part4Name |
|
|
| Part4UnitPrice |
Nombre |
|
| Part4Quantity |
Nombre |
|
| Part4SubTotal |
Nombre |
|
| Part5Name |
|
|
| Part5UnitPrice |
Nombre |
|
| Part5Quantity |
Nombre |
|
| Part5SubTotal |
Nombre |
|
| JobPerformed1 |
|
|
| JobPrice1 |
Nombre |
|
| JobPerformed2 |
|
|
| JobPrice2 |
Nombre |
|
| JobPerformed3 |
|
|
| JobPrice3 |
Nombre |
|
| JobPerformed4 |
|
|
| JobPrice4 |
Nombre |
|
| JobPerformed5 |
|
|
| JobPrice5 |
Nombre |
|
| TotalParts |
Nombre |
Pièces totales |
| TotalLabor |
Nombre |
Travail total |
| TaxRate |
Nombre |
Taux d'imposition fiscal |
| TaxAmount |
Nombre |
Quantité d'impôts |
| RepairTotal |
Nombre |
Réparer le total |
| RepairDate |
Date/heure |
Réparer la date |
| TimeReady |
Date/heure |
Temps prêt |
| Recommandations |
Note |
|
- Économiser et fermer la table
- Tandis que la table est encore choisie dans la fenêtre de base de données, sur la base de données toolbar, cliquer le nouvel objet : AutoForm
- Économiser la forme comme RepairOrders
- Droit-le cliquer et cliquer l'en-tête bas de page de forme
- Sur la boîte à outils, s'assurer que le bouton de magicien de commande est vers le bas. Cliquer le bouton de commande et cliquer la bonne section inférieure de la section de titre de bas de page de forme
- Suivre la section pour créer un bouton qui serait utilisé pour fermer la forme. Placer la légende du bouton à la fin et son nom au cmdClose
- Changer sa conception comme suit :

- Économiser et fermer la forme
|
Saisie de données adjacente
|
|
La technique la plus commune d'exécuter la saisie de données exige que vous savez l'ordre des colonnes de la table en laquelle vous voulez saisir des données. Avec cette liste suivante à l'esprit, écrire la valeur de chaque champ dans sa position correcte.
Pendant la saisie de données sur les champs adjacents, si vous n'avez pas une valeur pour un champ numérique, vous devriez le type 0 en tant que sa valeur. Pour les données de champ de corde lequel vous ne prenez pas et ne pouvez pas fournir, type deux double-cite pour indiquer un champ vide. Vous imaginer pour avoir une table équipée de deux colonnes de corde. Voici un exemple qui crée un disque fait de deux cordes :
Private Sub cmdEnterData_Click()
DoCmd.RunSQL "INSERT INTO Employees VALUES(""Jimmy"", ""Collen"");"
End Sub
Voici deux exemples de créer un disque avec deux valeurs de date :
Private Sub cmdTable_Click()
DoCmd.RunSQL "CREATE Table Employees (" & _
"DateHired Date, " & _
"DateModified Date);"
End Sub
Private Sub cmdEnterData_Click()
DoCmd.RunSQL "INSERT INTO Employees " & _
"VALUES(""02/08/2004"", ""16-Aug-05"");"
End Sub
|
Saisie de données aléatoire
|
|
La saisie de données adjacente exige que vous savez la position de chaque colonne. Le SQL fournit une alternative qui te permet d'exécuter la saisie de données en utilisant le nom d'une colonne au lieu de sa position. Ceci te permet de fournir les valeurs des champs dans n'importe quel ordre de votre choix.
Pour exécuter la saisie de données au hasard, vous devez fournir une liste des colonnes de la table dans l'ordre de votre choix. Vous pouvez employer toutes les colonnes ou fournir une liste des mêmes colonnes mais dans votre propre ordre. Voici un exemple :
Private Sub cmdTable_Click()
DoCmd.RunSQL "CREATE Table Employees (" & _
"DateHired Date, " & _
"FirstName Varchar(20), " & _
"MI Char(1), " & _
"LastName Varchar(20));"
End Sub
Private Sub cmdEnterData_Click()
DoCmd.RunSQL "INSERT INTO Employees (" & _
"DateHired, FirstName, MI, LastName) " & _
"VALUES(#02/08/2004#, ""Walter"", ""G"", ""Theal"");"
End Sub
Vous ne devez pas fournir les données pour toutes les colonnes, juste ceux que vous voulez, dans l'ordre vous voulez. Pour faire ceci, écrire les noms des colonnes désirées du bon côté du nom de la table, entre parenthèses. La syntaxe utilisée serait :
INSERT TableName(ColumnName1, Columnname2, ColumnName_n)
VALUES(ValueFormColumnName1, ValueFormColumnName2, ValueFormColumnName_n);
Voici un exemple :
Private Sub cmdTable_Click()
DoCmd.RunSQL "CREATE Table Employees (" & _
"DateHired Date, " & _
"FirstName Varchar(20), " & _
"MI Char(1), " & _
"LastName Varchar(20));"
End Sub
Private Sub cmdEnterData_Click()
DoCmd.RunSQL "INSERT INTO Employees (" & _
"LastName, DateHired, MI, FirstName) " & _
"VALUES(""Theal"", #02/08/2004#, ""G"", ""Walter"");"
End Sub
Noter que, pendant la saisie de données, les colonnes sont fournies dans un ordre différent que celui dans lequel elles ont été créées.
|
Étude pratique : Créer un Tableau
|
|
- Dans la fenêtre de base de données, cliquer le bouton de formes et cliquer nouveau…
- Économiser la forme comme NewRepairOrder
- Double-cliquer le bouton à l'intersection des deux règles l'accès la fenêtre de propriétés pour la forme et, dans la toute l'étiquette, changer les propriétés comme suit :
Légende : Le parc d'université Automobile-Font des emplettes - nouvel ordre de réparation Boutons de navigation : Non Centre automatique : Oui Boutons maximum minimum : Minute permise Largeur : 6.25 "
- Droit-cliquer la forme et cliquer l'en-tête bas de page de forme
- Cliquer la barre d'en-tête de forme et, dans la fenêtre de propriétés, placer sa taille à 0
- Concevoir la forme comme suit :
 |
| Commander |
Légende |
Nom |
Arrêt de tabulatrice |
Index d'étiquette |
| Groupe d'option |
Réparer l'identification |
|
|
|
| Boîte des textes |
Nom de client : |
txtCustomerName |
Oui |
0 |
| Boîte des textes |
Adresse : |
txtCustomerAddress |
Oui |
1 |
| Boîte des textes |
Ville : |
txtCustomerCity |
Oui |
2 |
| Boîte des textes |
État : |
txtCustomerState |
Oui |
3 |
| Boîte des textes |
Code postal : |
txtCustomerZIPCode |
Oui |
4 |
| Boîte des textes |
La voiture font/modèles : |
txtCarMakeModel |
Oui |
5 |
| Boîte des textes |
Année de voiture : |
txtCarYear |
Oui |
6 |
| Boîte des textes |
Description de problème : |
txtProblemDescription |
Oui |
7 |
| Groupe d'option |
Pièces utilisées |
|
|
|
| Boîte des textes |
Nom de partie |
txtPart1Name |
Oui |
8 |
| Boîte des textes |
Prix unitaire |
txtPart1UnitPrice |
Oui |
9 |
| Boîte des textes |
Quantité |
txtPart1Quandity |
Oui |
10 |
| Boîte des textes |
Total secondaire |
txtPart1SubTotal |
Non |
|
| Boîte des textes |
|
txtPart2Name |
Oui |
11 |
| Boîte des textes |
|
txtPart2UnitPrice |
Oui |
12 |
| Boîte des textes |
|
txtPart2Quandity |
Oui |
13 |
| Boîte des textes |
|
txtPart2SubTotal |
Non |
|
| Boîte des textes |
|
txtPart3Name |
Oui |
14 |
| Boîte des textes |
|
txtPart3UnitPrice |
Oui |
15 |
| Boîte des textes |
|
txtPart3Quandity |
Oui |
16 |
| Boîte des textes |
|
txtPart3SubTotal |
Non |
|
| Boîte des textes |
|
txtPart4Name |
Oui |
17 |
| Boîte des textes |
|
txtPart4UnitPrice |
Oui |
17 |
| Boîte des textes |
|
txtPart4Quandity |
Oui |
17 |
| Boîte des textes |
|
txtPart4SubTotal |
Non |
|
| Boîte des textes |
|
txtPart5Name |
Oui |
18 |
| Boîte des textes |
|
txtPart5UnitPrice |
Oui |
19 |
| Boîte des textes |
|
txtPart5Quandity |
Oui |
20 |
| Boîte des textes |
|
txtPart5SubTotal |
Non |
|
| Groupe d'option |
Les travaux exécutés |
|
|
|
| Boîte des textes |
Le travail exécuté |
txtJobPerformed1 |
Oui |
21 |
| Boîte des textes |
Prix du travail |
txtJobPrice1 |
Oui |
22 |
| Boîte des textes |
|
txtJobPerformed2 |
Oui |
23 |
| Boîte des textes |
|
txtJobPrice2 |
Oui |
24 |
| Boîte des textes |
|
txtJobPerformed3 |
Oui |
25 |
| Boîte des textes |
|
txtJobPrice3 |
Oui |
26 |
| Boîte des textes |
|
txtJobPerformed4 |
Oui |
27 |
| Boîte des textes |
|
txtJobPrice4 |
Oui |
28 |
| Boîte des textes |
|
txtJobPerformed5 |
Oui |
29 |
| Boîte des textes |
|
txtJobPrice5 |
Oui |
30 |
| Groupe d'option |
Résumé d'ordre |
|
|
|
| Boîte des textes |
Pièces totales : |
txtTotalParts |
Non |
|
| Boîte des textes |
Travail total : |
txtTotalLabor |
Non |
|
| Boîte des textes |
Taux d'imposition fiscal : |
txtTaxRate |
Oui |
31 |
| Boîte des textes |
Quantité d'impôts : |
txtTaxAmount |
Non |
|
| Boîte des textes |
Total de réparation : |
txtRepairTotal |
Non |
|
| Boîte des textes |
Date de réparation : |
txtRepairDate |
Oui |
32 |
| Boîte des textes |
Temps prêt : |
txtTimeReady |
Oui |
33 |
| Boîte des textes |
Recommandations : |
txtRecommendations |
Oui |
34 |
|
- Économiser la forme
- Sur le toolbar en forme de projet, cliquer le bouton de code

- Dans la section vide du rédacteur de code, créer le procédé suivant :
Private Sub CalculateOrder()
On Error GoTo CalculateOrder_Error
Dim dblPart1UnitPrice As Double, bytPart1Quantity As Byte
Dim dblPart2UnitPrice As Double, bytPart2Quantity As Byte
Dim dblPart3UnitPrice As Double, bytPart3Quantity As Byte
Dim dblPart4UnitPrice As Double, bytPart4Quantity As Byte
Dim dblPart5UnitPrice As Double, bytPart5Quantity As Byte
Dim dblPart1SubTotal As Double, dblPart2SubTotal As Double, _
dblPart3SubTotal As Double, dblPart4SubTotal As Double, _
dblPart5SubTotal As Double
Dim dblJob1Price As Double, dblJob2Price As Double, _
dblJob3Price As Double, dblJob4Price As Double, _
dblJob5Price As Double
Dim curTotalParts As Currency, curTotalLabor As Currency
Dim dblTaxRate As Double, curTaxAmount As Currency
Dim curRepairTotal As Currency
' Retrieve the unit price of each part
dblPart1UnitPrice = CDbl([txtPart1UnitPrice])
dblPart2UnitPrice = CDbl([txtPart2UnitPrice])
dblPart3UnitPrice = CDbl([txtPart3UnitPrice])
dblPart4UnitPrice = CDbl([txtPart4UnitPrice])
dblPart5UnitPrice = CDbl([txtPart5UnitPrice])
' Retrieve the quantity specified for each part
bytPart1Quantity = CByte([txtPart1Quantity])
bytPart2Quantity = CByte([txtPart2Quantity])
bytPart3Quantity = CByte([txtPart3Quantity])
bytPart4Quantity = CByte([txtPart4Quantity])
bytPart5Quantity = CByte([txtPart5Quantity])
' Calculate the sub-total of each part
dblPart1SubTotal = dblPart1UnitPrice * bytPart1Quantity
dblPart2SubTotal = dblPart2UnitPrice * bytPart2Quantity
dblPart3SubTotal = dblPart3UnitPrice * bytPart3Quantity
dblPart4SubTotal = dblPart4UnitPrice * bytPart4Quantity
dblPart5SubTotal = dblPart5UnitPrice * bytPart5Quantity
' Display the sub totals in the corresponding text boxes
[txtPart1SubTotal] = dblPart1SubTotal
[txtPart2SubTotal] = dblPart2SubTotal
[txtPart3SubTotal] = dblPart3SubTotal
[txtPart4SubTotal] = dblPart4SubTotal
[txtPart5SubTotal] = dblPart5SubTotal
' Calculate the total spent on parts
curTotalParts = CCur(dblPart1SubTotal + dblPart2SubTotal + _
dblPart3SubTotal + dblPart4SubTotal + _
dblPart5SubTotal)
' Retrive the labor amount of each job performed
dblJob1Price = CDbl([txtJob1Price])
dblJob2Price = CDbl([txtJob2Price])
dblJob3Price = CDbl([txtJob3Price])
dblJob4Price = CDbl([txtJob4Price])
dblJob5Price = CDbl([txtJob5Price])
' Calculate the total labor for this repair
curTotalLabor = CCur(dblJob1Price + dblJob2Price + dblJob3Price + _
dblJob4Price + dblJob5Price)
' Retrieve the tax rate applied
dblTaxRate = CDbl([txtTaxRate])
' Calculate the tax amount based on the tax rate applied
' on the parts and the labor
curTaxAmount = CLng(curTotalLabor + curTotalParts) * (dblTaxRate * 100) / 100
curRepairTotal = curTotalLabor + curTotalParts + curTaxAmount
' Displays the values in the Order Summary section
[txtTotalParts] = curTotalParts
[txtTotalLabor] = curTotalLabor
[txtTaxAmount] = curTaxAmount
[txtRepairTotal] = curRepairTotal
Exit Sub
' If there was a problem, address it here
CalculateOrder_Error:
' One of the most common problems that may occur here is if the
' user enters an invalid value in a text box. Normally, the database
' engine is equipped to take care of that and warn the user because
' we specified a format for each text box. But just in case...
If Err.Number = 94 Then
MsgBox "Make sure you enter the unit price and the quantity " & _
"of each part used." & vbCrLf & "Please try again!"
End If
End Sub
|
- Revenir à la forme et cliquer la première boîte des textes sous la quantité
- Dans la fenêtre de propriétés, cliquer l'étiquette d'événements et double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtPart1Quantity_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la deuxième boîte des textes sous la quantité
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtPart2Quantity_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la troisième boîte des textes sous la quantité
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtPart3Quantity_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la quatrième boîte des textes sous la quantité
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtPart4Quantity_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la cinquième boîte des textes sous la quantité
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtPart5Quantity_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la première boîte des textes sous le prix du travail
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtJob1Price_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la deuxième boîte des textes sous le prix du travail
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtJob2Price_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la troisième boîte des textes sous le prix du travail
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtJob3Price_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la quatrième boîte des textes sous le prix du travail
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtJob4Price_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la cinquième boîte des textes sous le prix du travail
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtJob5Price_LostFocus()
CalculateOrder
End Sub
|
- Revenir à la forme et cliquer la boîte des textes de taux d'imposition fiscal
- Dans l'étiquette d'événements de la fenêtre de propriétés, double-cliquer sur le foyer perdu
- Cliquer son bouton de points de suspension et mettre en application l'événement comme suit :
Private Sub txtTaxRate_LostFocus()
CalculateOrder
End Sub
|
- Revenir au Microsoft Access
- Dans la boîte à outils, s'assurer que le bouton de magiciens de commande est vers le bas
 Cliquer le bouton de commande et cliquer sous la barre de titre de bas de page de forme
- Dans la première page du magicien de bouton de commande, cliquer les opérations de forme dans la liste de catégories
- Dans les actions énumérer, cliquer la forme étroite et cliquer après
- Dans la deuxième page du magicien, changer la corde dans la boîte supérieure des textes en fin et cliquer après
- Changer le nom en cmdClose et cliquer la finition
- Commuter la forme à la vue de forme
- Économiser la forme
- Sur la boîte à outils, cliquer le bouton de commande et cliquer la section centrale sous la barre de titre de bas de page de forme
- Quand les débuts de magicien de bouton de commande, cliquent l'annulation et changent les propriétés du nouveau bouton comme suit :
Légende : Remettre à zéro l'ordre Nom : cmdResetOrder
- Droit-cliquer le nouveau bouton et cliquer l'événement de construction
- Dans la zone de dialogue de constructeur de choix, double-cliquer le constructeur de code et mettre en application l'événement comme suit :
Private Sub cmdResetOrder_Click()
txtCustomerName = ""
txtCustomerAddress = ""
txtCustomerCity = ""
txtCustomerState = ""
txtCustomerZIPCode = ""
txtCarMakeModel = ""
txtCarYear = ""
txtProblemDescription = ""
txtPart1Name = ""
txtPart1UnitPrice = "0.00"
txtPart1Quantity = "0"
txtPart1SubTotal = "0.00"
txtPart2Name = ""
txtPart2UnitPrice = "0.00"
txtPart2Quantity = "0"
txtPart2SubTotal = "0.00"
txtPart3Name = ""
txtPart3UnitPrice = "0.00"
txtPart3Quantity = "0"
txtPart3SubTotal = "0.00"
txtPart4Name = ""
txtPart4UnitPrice = "0.00"
txtPart4Quantity = "0"
txtPart4SubTotal = "0.00"
txtPart5Name = ""
txtPart5UnitPrice = "0.00"
txtPart5Quantity = "0"
txtPart5SubTotal = "0.00"
txtJobPerformed1 = ""
txtJobPrice1 = "0.00"
txtJobPerformed2 = ""
txtJobPrice2 = "0.00"
txtJobPerformed3 = ""
txtJobPrice3 = "0.00"
txtJobPerformed4 = ""
txtJobPrice4 = "0.00"
txtJobPerformed5 = ""
txtJobPrice5 = "0.00"
txtTotalParts = "0.00"
txtTotalLabor = "0.00"
txtTaxRate = "7.75%"
txtTaxAmount = "0.00"
txtRepairTotal = "0.00"
txtRepairDate = ""
txtTimeReady = ""
txtRecommendations = ""
End Sub
|
- Revenir au Microsoft Access
- Sur la boîte à outils, cliquer le bouton de commande et cliquer la section gauche sous la barre de titre de bas de page de forme
- Quand les débuts de magicien de bouton de commande, cliquent l'annulation et changent les propriétés du nouveau bouton comme suit :
Légende : Soumettre l'ordre de réparation Nom : cmdSubmitRepairOrder
- Droit-cliquer le nouveau bouton et cliquer l'événement de construction
- Dans la zone de dialogue de constructeur de choix, double-cliquer le constructeur de code
- Pour exécuter la saisie de données adjacente, exécuter le rapport suivant :
Private Sub cmdSubmitRepairOrder_Click()
On Error GoTo cmdSubmitRepairOrder_Error
Dim conCPAS As ADODB.Connection
Dim strCustomerName As String, strCustomerAddress As String
Dim strCustomerCity As String, strCustomerState As String
Dim strCustomerZIPCode As String, strCarMakeModel As String
Dim intCarYear As Integer, strProblemDescription As String
Dim strPart1Name As String, strPart2Name As String, _
strPart3Name As String, strPart4Name As String, _
strPart5Name As String
Dim dblPart1UnitPrice As Double, dblPart2UnitPrice As Double, _
dblPart3UnitPrice As Double, dblPart4UnitPrice As Double, _
dblPart5UnitPrice As Double
Dim intPart1Quantity As Integer, intPart2Quantity As Integer, _
intPart3Quantity As Integer, intPart4Quantity As Integer, _
intPart5Quantity As Integer
Dim dblPart1SubTotal As Double, dblPart2SubTotal As Double, _
dblPart3SubTotal As Double, dblPart4SubTotal As Double, _
dblPart5SubTotal As Double
Dim strJobPerformed1 As String, dblJobPrice1 As Double
Dim strJobPerformed2 As String, dblJobPrice2 As Double
Dim strJobPerformed3 As String, dblJobPrice3 As Double
Dim strJobPerformed4 As String, dblJobPrice4 As Double
Dim strJobPerformed5 As String, dblJobPrice5 As Double
Dim curTotalParts As Currency, curTotalLabor As Currency
Dim dblTaxRate As Double, curTaxAmount As Currency
Dim curRepairTotal As Currency, dteRepairDate As Date
Dim dteTimeReady As Date, strRecommendations As String
If IsNull([txtCustomerName]) Then
MsgBox "Please enter the name of the customer to process an order"
txtCustomerName.SetFocus
Exit Sub
End If
If IsNull([txtCustomerAddress]) Then
strCustomerAddress = ""
Else
strCustomerAddress = [txtCustomerAddress]
End If
If IsNull([txtCustomerCity]) Then
strCustomerCity = ""
Else
strCustomerCity = [txtCustomerCity]
End If
If IsNull([txtCustomerState]) Then
strCustomerState = ""
Else
strCustomerState = [txtCustomerState]
End If
If IsNull([txtCustomerZIPCode]) Then
strCustomerZIPCode = ""
Else
strCustomerZIPCode = [txtCustomerZIPCode]
End If
If IsNull([txtCarMakeModel]) Then
MsgBox "You must specify the make and the model of the car"
txtCarMakeModel.SetFocus
Exit Sub
End If
If IsNull([txtCarYear]) Then
intCarYear = 0
Else
intCarYear = CInt([txtCarYear])
End If
If IsNull(txtProblemDescription) Then
MsgBox "Make sure you describe the problem that needs " & _
"to be fixed on the car"
txtProblemDescription.SetFocus
Exit Sub
End If
If IsNull([txtPart1Name]) Then
strPart1Name = ""
Else
strPart1Name = [txtPart1Name]
End If
If IsNull([txtPart1UnitPrice]) Then
dblPart1UnitPrice = ""
Else
dblPart1UnitPrice = CDbl([txtPart1UnitPrice])
End If
If IsNull([txtPart1Quantity]) Then
intPart1Quantity = 0
Else
intPart1Quantity = CInt([txtPart1Quantity])
End If
If IsNull([txtPart1SubTotal]) Then
dblPart1SubTotal = 0
Else
dblPart1SubTotal = CDbl([txtPart1SubTotal])
End If
If IsNull([txtPart2Name]) Then
strPart2Name = ""
Else
strPart2Name = [txtPart2Name]
End If
If IsNull([txtPart2UnitPrice]) Then
dblPart2UnitPrice = 0
Else
dblPart2UnitPrice = CDbl([txtPart2UnitPrice])
End If
If IsNull([txtPart2Quantity]) Then
intPart2Quantity = 0
Else
intPart2Quantity = CInt([txtPart2Quantity])
End If
If IsNull([txtPart2SubTotal]) Then
dblPart2SubTotal = 0
Else
dblPart2SubTotal = CDbl([txtPart2SubTotal])
End If
If IsNull([txtPart3Name]) Then
strPart3Name = ""
Else
strPart3Name = [txtPart3Name]
End If
If IsNull([txtPart3UnitPrice]) Then
dblPart3UnitPrice = 0
Else
dblPart3UnitPrice = CDbl([txtPart3UnitPrice])
End If
If IsNull([txtPart3Quantity]) Then
intPart3Quantity = 0
Else
intPart3Quantity = CInt([txtPart3Quantity])
End If
If IsNull([txtPart3SubTotal]) Then
dblPart3SubTotal = 0
Else
dblPart3SubTotal = CDbl([txtPart3SubTotal])
End If
If IsNull([txtPart4Name]) Then
strPart4Name = ""
Else
strPart4Name = [txtPart4Name]
End If
If IsNull([txtPart4UnitPrice]) Then
dblPart4UnitPrice = 0
Else
dblPart4UnitPrice = CDbl([txtPart4UnitPrice])
End If
If IsNull([txtPart4Quantity]) Then
intPart4Quantity = 0
Else
intPart4Quantity = CInt([txtPart4Quantity])
End If
If IsNull([txtPart4SubTotal]) Then
dblPart4SubTotal = 0
Else
dblPart4SubTotal = CDbl([txtPart4SubTotal])
End If
If IsNull([txtPart5Name]) Then
strPart5Name = ""
Else
strPart5Name = [txtPart5Name]
End If
If IsNull([txtPart5UnitPrice]) Then
dblPart5UnitPrice = 0
Else
dblPart5UnitPrice = CDbl([txtPart5UnitPrice])
End If
If IsNull([txtPart5Quantity]) Then
intPart5Quantity = 0
Else
intPart5Quantity = CInt([txtPart5Quantity])
End If
If IsNull([txtPart5SubTotal]) Then
dblPart5SubTotal = 0
Else
dblPart5SubTotal = CDbl([txtPart5SubTotal])
End If
If IsNull([txtJobPerformed1]) Then
strJobPerformed1 = ""
Else
strJobPerformed1 = [txtJobPerformed1]
End If
If IsNull([txtJobPrice1]) Then
dblJobPrice1 = 0
Else
dblJobPrice1 = CDbl([txtJobPrice1])
End If
If IsNull([txtJobPerformed2]) Then
strJobPerformed2 = ""
Else
strJobPerformed2 = [txtJobPerformed2]
End If
If IsNull([txtJobPrice2]) Then
dblJobPrice2 = 0
Else
dblJobPrice2 = CDbl([txtJobPrice2])
End If
If IsNull([txtJobPerformed3]) Then
strJobPerformed3 = ""
Else
strJobPerformed3 = [txtJobPerformed3]
End If
If IsNull([txtJobPrice3]) Then
dblJobPrice3 = 0
Else
dblJobPrice3 = CDbl([txtJobPrice3])
End If
If IsNull([txtJobPerformed4]) Then
strJobPerformed4 = ""
Else
strJobPerformed4 = [txtJobPerformed4]
End If
If IsNull([txtJobPrice4]) Then
dblJobPrice4 = 0
Else
dblJobPrice4 = CDbl([txtJobPrice4])
End If
If IsNull([txtJobPerformed5]) Then
strJobPerformed5 = ""
Else
strJobPerformed5 = [txtJobPerformed5]
End If
If IsNull([txtJobPrice5]) Then
dblJobPrice5 = 0
Else
dblJobPrice5 = CDbl([txtJobPrice5])
End If
If IsNull([txtTotalParts]) Then
curTotalParts = 0
Else
curTotalParts = [txtTotalParts]
End If
If IsNull([txtTotalLabor]) Then
curTotalLabor = 0
Else
curTotalLabor = CCur([txtTotalLabor])
End If
If IsNull([txtTaxRate]) Then
dblTaxRate = 0
Else
dblTaxRate = CDbl([txtTaxRate])
End If
If IsNull([txtTaxAmount]) Then
curTaxAmount = 0
Else
curTaxAmount = CCur([txtTaxAmount])
End If
If IsNull([txtRepairTotal]) Then
curRepairTotal = 0
Else
curRepairTotal = CCur([txtRepairTotal])
End If
If IsNull([txtRepairDate]) Then
dteRepairDate = 0
Else
dteRepairDate = CDate([txtRepairDate])
End If
If IsNull([txtTimeReady]) Then
dteTimeReady = 0
Else
dteTimeReady = [txtTimeReady]
End If
If IsNull([txtRecommendations]) Then
strRecommendations = ""
Else
strRecommendations = [txtRecommendations]
End If
' Just in case the order total was not calculated, do it now
CalculateOrder
Dim strInsertInto As String, strValues As String
strInsertInto = _
"INSERT INTO RepairOrders(CustomerName, CustomerAddress, " & _
"CustomerCity, CustomerState, CustomerZIPCode, CarMakeModel, " & _
"CarYear, ProblemDescription, Part1Name, Part1UnitPrice, " & _
"Part1Quantity, Part1SubTotal, Part2Name, Part2UnitPrice, " & _
"Part2Quantity, Part2SubTotal, Part3Name, Part3UnitPrice, " & _
"Part3Quantity, Part3SubTotal, Part4Name, Part4UnitPrice, " & _
"Part4Quantity, Part4SubTotal, Part5Name, Part5UnitPrice, " & _
"Part5Quantity, Part5SubTotal, JobPerformed1, JobPrice1, " & _
"JobPerformed2, JobPrice2, JobPerformed3, JobPrice3, " & _
"JobPerformed4, JobPrice4, JobPerformed5, JobPrice5, " & _
"TotalParts, TotalLabor, TaxRate, TaxAmount, RepairTotal, " & _
"RepairDate, TimeReady, Recommendations)"
strValues = "VALUES(""" & [txtCustomerName] & _
" "", """ & strCustomerAddress & """, """ & _
strCustomerCity & """, """ & strCustomerState & """, """ & _
strCustomerZIPCode & """, """ & [txtCarMakeModel] & """, """ & _
intCarYear & """, """ & [txtProblemDescription] & """, """ & _
strPart1Name & """, """ & dblPart1UnitPrice & """, """ & _
intPart1Quantity & """, """ & dblPart1SubTotal & """, """ & _
strPart2Name & """, """ & dblPart2UnitPrice & """, """ & _
intPart2Quantity & """, """ & dblPart2SubTotal & """, """ & _
strPart3Name & """, """ & dblPart3UnitPrice & """, """ & _
intPart3Quantity & """, """ & dblPart3SubTotal & """, """ & _
strPart4Name & """, """ & dblPart4UnitPrice & """, """ & _
intPart4Quantity & """, """ & dblPart4SubTotal & """, """ & _
strPart5Name & """, """ & dblPart5UnitPrice & """, """ & _
intPart5Quantity & """, """ & dblPart5SubTotal & """, """ & _
strJobPerformed1 & """, """ & dblJobPrice1 & """, """ & _
strJobPerformed2 & """, """ & dblJobPrice2 & """, """ & _
strJobPerformed3 & """, """ & dblJobPrice3 & """, """ & _
strJobPerformed4 & """, """ & dblJobPrice4 & """, """ & _
strJobPerformed5 & """, """ & dblJobPrice5 & """, """ & _
curTotalParts & """, """ & curTotalLabor & """, """ & _
dblTaxRate & """, """ & curTaxAmount & """, """ & _
curRepairTotal & """, """ & dteRepairDate & """, """ & _
dteTimeReady & """, """ & strRecommendations & """);"
Set conCPAS = Application.CurrentProject.Connection
conCPAS.Execute strInsertInto & " " & strValues
MsgBox "The new repair order has been added to the database"
' Reset the form in case the user wants to create a new record
cmdResetOrder_Click()
Exit Sub
cmdSubmitRepairOrder_Error:
MsgBox "There was a problem processing this order" & vbCrLf & _
"Please call the IT Support team and report the error as" & vbCrLf & _
CStr(Err.Number) & ": " & Err.Description
Resume Next
End Sub |
- Revenir au Microsoft Access
- Commuter la forme à la vue de forme

- Économiser et fermer la forme
- Close the database
|
|