Access: Créer 2 record simultanés dans table

rafr1 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
rafr1 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je travaille sur une petite application de suivi de dépenses de bureau dans laquelle j'ai une fonctionnalité qui permet la gestion de transfert de fonds de compte bancaire à compte bancaire. Le problème pour lequel je sollicite humblement votre aide et vos lumières est le suivant :

J'aimerai créer 2 enregistrements simultanés pour chaque transfert de compte à compte. Un qui enregistre la banque d'origine et le montant au « Débit », et l'autre la banque de destination avec le même montant que précédemment mais inscrit au « Crédit , de ma table (Tbl_Transaction), ceci à l'aide d'un seul formulaire (ie. d'une seule action de validation sur le formulaire):

Ex. Table à altérer : « Tbl_Transaction », type de transaction : Transfer de compte a compte

> 1ère ligne à créer dans la table Tbl_Transaction : Champ « Account » (donnée provenant du champ « From Account » du formulaire), champ « Amount » (donnée provenant du champ « Debit » du formulaire)= txtDebit = montant débité.

> 2ème ligne à créer dans la table Tbl_Transaction : Champ « Account » (donnée provenant du champ « To Account » du formulaire), champ « Amount » (donnée provenant du champ « Credit » du formulaire)= txtCrédit = montant crédité.

Rem* Quand un montant est saisi dans le champ « Amount » (= txtDebit = montant débité)du formulaire, le même montant est automatiquement inscrit dans un champ caché "Credit" sur le même formulaire (Amount» = txtCrédit = montant crédité).

...Et voici le résultat attendu dans la Table « Tbl_Transaction » (simplifié):

ID=1, Date= 01.01.2012, Category=Transfer, Description=Test Transfer1, Account=Bank1, Debit=$1'000.

ID=2, Date= 01.01.2012, Category=Transfer, Description=Test Transfer1, Account=Bank2, Credit=$1'000.
(New)


Pour l'instant, je ne suis parvenu qu'à obtenir de mon formulaire qu'il crée un (seul) enregistrement du type 1ère ligne. N'importe quelle aide est la bienvenue...

1 réponse

blux Messages postés 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

tu n'arriveras pas à tes fins (de manière simple), simplement avec les "outils" classiques du formulaire.

Il te faudra passer par une procédure en VBA qui sera appelée lors de la validation du formulaire.

Cela pourra se faire très simplement en exécutant deux requêtes de type INSERT dans la table, en ayant récupéré les données du formulaire avant leur exécution.
0
rafr1 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Blux, je vais plancher la dessus...
0
rafr1 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Blux, pourrais-tu me donner un peu plus de précisions sur la procedure VBA à suivre au sujet de la récupération des données saisies dans le formulaire ainsi que les 2 requêtes INSERT INTO , s'il te plait? Peut-être avec des exemplifications en VB? Je trierais pour l'adapter ce que je veux faire...
0
blux Messages postés 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Dans l'évènement 'sur clic' de ton bouton de validation, tu mets ce code (à compléter éventuellement avec d'autres données : date, catégorie, description...) :

Dim StrSql as String
StrSql = "INSERT INTO Tbl_Transaction (account,amount) "
StrSql = StrSql & "VALUES ('" & [From account].value & "'," & [debit].value & ");"
DoCmd.RunSQL StrSql
StrSql = "INSERT INTO Tbl_Transaction (account,amount) "
StrSql = StrSql & "VALUES ('" & [To account].value & "'," & [credit].value & ");"
0
rafr1 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci infiniment Bliûx, je vais creuser...
0