J'ai une table tblCosts que j'affiche sur un frontend msaccess qui permet aux utilisateurs d'ajouter de nouvelles entrées et de mettre à jour celles qui existent déjà. Le tableau est structuré comme ci-dessous.
Condition pour la mise à jour par rapport à l'insertion
ExpenseType Month Year Cost
Hardware June 2017 $500
Software July 2017 $300
Hardware Sept 2017 $150
J'ai une mise à jour et des requêtes d'insertion qui fonctionnent bien quand exécuter manuellement. Cependant, j'ai de la difficulté à différencier la condition quand déclencher la requête sur le formulaire. Par exemple, si l'enregistrement existe dans la table, il doit exécuter la requête de mise à jour, si l'enregistrement n'existe pas, il doit exécuter la requête d'insertion.
Par exemple, si quelqu'un met en
- Matériel septembre $, il devrait mettre à jour la 3ème entrée 150-120 mais si quelqu'un met en
- Meubles Sept $ 350
Il doit reconnaître que Furniture ne fait pas partie de la base de données et exécuter la requête d'insertion.
J'ai la mise à jour et insérer des requêtes, mais besoin d'aide pour identifier la condition quand les exécuter.
La requête de mise à jour que je utilise est:
Update tblCosts
set tblCosts.Cost=[Forms]![frmCost]![txtCost]
where tblCosts.ExpenseType = [Forms]![frmCost]![txtExpType]
and tblCosts.Month = [Forms]![frmCost]![txtMonth]
and tblCosts.Year = [Forms]![frmCost]![txtYear]
La requête d'insertion J'utilise est:
Insert into tblCosts (ExpenseType , Month, Year, Cost)
Select [Forms]![frmCost]![txtExpType] as Exp1,
[Forms]![frmCost]![txtMonth] as Exp2,
[Forms]![frmCost]![txtYear] as Exp 3,
[Forms]![frmCost]![txtCost] as Exp 4
Essayé en utilisant un 'DCount' pour vérifier s'il y avait déjà une entrée? S'il vous plaît nous montrer votre tentative, et comment vous déclenchez la requête (macro ou VBA). –
Ma tentative est basée sur le frontend sans limite msaccess, La requête de mise à jour "Update tblCosts set tblCosts.Cost = [Formulaires]! [FrmCost]! [TxtCost] où tblCosts.ExpenseType = [Forms]! [FrmCost]! [TxtExpType] et tblCosts.Month = [Forms]! [frmCost]! [txtMonth] et tblCosts.Year = [Forms]! [frmCost]! [txtYear] – Anup
Et la requête d'insertion: Insérer dans tblCosts (ExpenseType, Month, Year, Cost) Sélectionnez [Forms]! [FrmCost]! [TxtExpType] comme Exp1, [Forms]! [FrmCost]! [TxtMonth] comme Exp2, [Forms]! [FrmCost]![txtYear] comme Exp 3, [Forms]! [frmCost]! [txtCost] comme Exp 4 Comme je l'ai dit, les requêtes de mise à jour et d'insertion s'exécutent quand je les lance manuellement, c'est juste que j'ai besoin d'aide pour les déclencher (insérer si nouvel enregistrement, mettre à jour si l'enregistrement existant) – Anup