Code VBA qui valide si la même valeur se retrouve dans deux sous-formulaire

Fermé
Syb - Modifié le 6 août 2019 à 16:26
Seiquo Messages postés 4 Date d'inscription mardi 6 août 2019 Statut Membre Dernière intervention 7 août 2019 - 7 août 2019 à 14:26
Bonjour Forum,

Je travaille actuellement sur une base de données qui servira à imprimer des relevés pour des courtiers immobiliers.
Mon formulaire principal contient deux sous-formulaires : le premier pour y saisir les informations concernant les commissions à payer au courtier, le second pour les frais et dépenses que le courtier doit acquitter.

Ces deux sous-formulaires sont bien sûr basés sur deux tables différentes : TbCommission et TbDepense

Elles ont trois champs communs : Nom (du courtier), Numero (du relevé) et DateReleve, que l'on retrouve dans les sous-formulaires, au moment de la saisie des données.

Pour me permettre de poursuivre avec mes calculs et soustractions, j'ai besoin de l'action suivante :

Une fois ma saisie faite pour un relevé donné, je voudrais que, SI j'ai dans mes deux tables le même nom (de courtier) et le même numéro (de relevé), alors la date (du relevé) doit être copiée dans le champ DateDeduction de ma table TBDepense, pour les enregistrements correspondants.

Pourquoi ? Parce que cela me permettra de calculer le solde à payer par un courtier, le cas échéant. Tous les enregistrements de dépenses qui auront une date dans le champ DateDeduction auront été déduits automatiquement des commissions à payer, donc ne seront plus à payer.

Bien sûr, je pourrais y aller avec une saisie manuelle de la date dans le champ DateDeduction, mais il pourrait y avoir des erreurs de ligne, de saisie, etc.

Quelqu'un peut-il m'aider ?

Merci beaucoup à l'avance.


Configuration: Windows / Edge 17.17134
A voir également:

7 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
6 août 2019 à 20:22
bonjour, tu peux probablement réaliser ce que tu décris avec un code VBA associé au formulaire.
cependant, je soupçonne que la structure de tes données (les information dans tes tables) n'est pas correcte.
tes explications ne sont pas très claires: tu ne précises pas si les informations dont tu parles sont celles des formulaires ou celles des tables
ne serait-il pas préférable d'avoir une table "relevés"?
0
Seiquo Messages postés 4 Date d'inscription mardi 6 août 2019 Statut Membre Dernière intervention 7 août 2019
6 août 2019 à 20:49
Bonjour yq_be,

Tout d'abord merci de ton temps.
Les informations dont je parle sont celles des tables.
J'ai effectivement une table TbReleve, qui comporte 3 champs : le numéro du relevé, sa date et le nom du courtier.
Les deux autres tables contiennent les détails de l'écriture.
Je pensais mettre le code de vérification des données communes sur mon bouton Ok qui génère la ligne dans la table des relevés.
Je peux essayer de créer un DB avec des informations bidons et tu pourras voir comment elle fonctionne (d'ici à demain).
Il ne me manque plus que ce dernier point pour finaliser la formule de solde sur mon état...
0
Seiquo Messages postés 4 Date d'inscription mardi 6 août 2019 Statut Membre Dernière intervention 7 août 2019
Modifié le 6 août 2019 à 21:30
Voici le lien vers le fichier test :

https://www.cjoint.com/c/IHgtDGXzKJL

Encore merci ! Et je suis preneuse de conseils si quoi que ce soit est mal pensé ! :)
0
Utilisateur anonyme
6 août 2019 à 23:27
Bonjour,

le nom du courtier n'est pas une bonne idée, autant renseigner son numéro (clé primaire)...

J'ai un peu de mal à savoir ce que tu veux réellement, je lis et relis, mais je ne pige pas.

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
6 août 2019 à 23:28
C'est quoi "un relevé" ???



0
Seiquo Messages postés 4 Date d'inscription mardi 6 août 2019 Statut Membre Dernière intervention 7 août 2019
7 août 2019 à 00:26
Bonsoir HDU,

Un relevé, ce serait un état des commissions à payer au courtier et des dépenses à rembourser de sa part. Ils sont sortis une à deux fois par mois.

Il peut y avoir :

- Un état avec seulement des commissions - dans ce cas, je paye le montant au courtier et on n'en parle plus. Il ne me doit pas d'argent.

- des états avec seulement des dépenses - dans ce cas, le courtier me fait un chèque pour me les rembourser, je saisis une date manuellement à la réception de son paiement dans DateDeduit et le solde à me devoir en dépenses s'ajuste (j'ai une requête à fignoler pour ça).

- des états avec à la fois des commissions ET des dépenses.
Dans ce cas, supposons que j'ai 3000 $ de commissions à payer au courtier, et 200$ de dépenses qu'il me doit. Donc sur l'état que j'imprime, j'ai un champ qui calcule les commissions moins les dépenses et qui montre que je ne lui devrai plus que 2800$.
Cependant, je ne veux pas que les 200$ continuent d'apparaître comme une somme qu'il me doit encore, puisque je lui déduis directement de ses commissions. Donc je voudrais que la date du relevé s'inscrive tout de suite dans le champ DateDeduit, pour que le solde à me devoir en dépenses ne prenne pas en compte ce montant. Je voudrais éviter une saisie manuelle car il y a souvent plusieurs lignes de dépenses impliquées.

Est-ce que c'est plus clair ?
0
Utilisateur anonyme
7 août 2019 à 11:02
Je regarde cela ce soir.

Bonne journée.

A+
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
7 août 2019 à 09:44
je pense qu'il est préférable de ne pas avoir de champ DateDeduction dans la table TBDepense. Il est préférable d'utiliser une requête pour utiliser les informations de la table TBReleve.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
7 août 2019 à 10:48
où et comment les paiements et les chèques sont-ils enregistrés?
0
Seiquo Messages postés 4 Date d'inscription mardi 6 août 2019 Statut Membre Dernière intervention 7 août 2019
Modifié le 7 août 2019 à 14:28
Lorsqu'on reçoit un chèque, alors on entre la date de réception dans la colonne DateDeduit, sur chaque ligne concernée par le chèque, pour que la somme ne soit plus prise en compte dans le solde à recevoir. Dans ce cas, on ne peut pas faire autrement que les saisir manuellement.
0