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

Fermé
rafr1 Messages postés 5 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 8 juin 2012 - 7 juin 2012 à 13:36
rafr1 Messages postés 5 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 8 juin 2012 - 8 juin 2012 à 16:27
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 26556 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 29 décembre 2024 3 319
7 juin 2012 à 13:51
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 vendredi 30 mars 2012 Statut Membre Dernière intervention 8 juin 2012
7 juin 2012 à 17:19
Merci Blux, je vais plancher la dessus...
0
rafr1 Messages postés 5 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 8 juin 2012
8 juin 2012 à 15:26
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 26556 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 29 décembre 2024 3 319
8 juin 2012 à 15:35
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 vendredi 30 mars 2012 Statut Membre Dernière intervention 8 juin 2012
8 juin 2012 à 16:27
Merci infiniment Bliûx, je vais creuser...
0