|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Comparer et mettre à jour deux tables |
| Débuté par louisfalter, 04 nov. 2013 07:02 - 3 réponses |
| |
| | | |
|
| |
| Posté le 04 novembre 2013 - 07:02 |
Bonjour,
Voici mon petit problème :
Je doit comparer deux tables (Table1 et Table2) remplie par programmation. Le but est de comparer les deux table afin qu'ils soit identique. En gros, Table1 doit être identique à Table2 et si non identique, copier la ligne de Table1 à Table2.
J'ai testé avec :
POUR TOUTE LIGNE SELECTIONNEE DE Table2
FIN
Mais je vous avoue que je ne sais pas trop quoi mettre. J'ai tenté d'effectuer, avec POUR TOUTE LIGNE SELECTIONNEE de rechercher la ligne sélectionnée dans la ligne de Table2 et donc de copier la ligne dans Table2 et ainsi de suite. Mais rien de bien probant.
Avez vous une idée de la marche à suivre ?
Je vous remercie d'avance. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 418 messages |
|
| Posté le 04 novembre 2013 - 21:39 |
Bonjour
1° les deux tables ont elles ma même structures
2° les lignes de données ont elles un identifiant unique si oui on fera la comparaison sur cette identifiant, sinon on devra faire la comparaison sur les infos contenues dans chaque colonnes
nPositionLigne est un entier
nPosTrouvée est un entier
bEstTrouvé est un booléen
POUR TOUTE LIGNE nPositionLigne DE TABLE_SansNom1 nPosTrouvée = TableCherche(TABLE_SansNom2.COL_Col_a,TABLE_SansNom1.COL_Col_a[nPositionLigne])
SI nPosTrouvée < 1 ALORS
TableAjouteLigne(TABLE_SansNom2,TABLE_SansNom1.COL_Col_a[nPositionLigne],TABLE_SansNom1.COL_Col_xx[nPositionLigne],TABLE_SansNom1.COL_MAcol[nPositionLigne])
FIN
FIN
POUR TOUTE LIGNE nPositionLigne DE TABLE_SansNom1 bEstTrouvé = Faux POUR TOUTE LIGNE nPosTrouvée DE TABLE_SansNom2 SI TABLE_SansNom1.COL_Col_a[nPositionLigne] = TABLE_SansNom2.COL_Col_a[nPosTrouvée] ET TABLE_SansNom1.COL_Col_xx[nPositionLigne] = TABLE_SansNom2.COL_Col_xx[nPosTrouvée] ET TABLE_SansNom1.COL_MAcol[nPositionLigne]= TABLE_SansNom2.COL_MAcol[nPosTrouvée] ALORS bEstTrouvé = Vrai SORTIR FIN FIN SI PAS bEstTrouvé = Vrai ALORS TableAjouteLigne(TABLE_SansNom2,TABLE_SansNom1.COL_Col_a[nPositionLigne],TABLE_SansNom1.COL_Col_xx[nPositionLigne],TABLE_SansNom1.COL_MAcol[nPositionLigne])
FIN
FIN
Après on peut optimisé, avec les fonctions tableenumere, et en utilisant des indirections, mais cela sera pour l'année prochaine
-- Bertin CARRIERE Consultant & Formateur bertin.carriere@gmail.com http://www.zen-project.be http://www.linkedin.com/in/bertincarriere Belgique +32(0)2/318.02.67 France +33(0)3/66.722.542 Espagne +34.5/12.702.266
Membre de http://www.be-dev.be |
| |
| |
| | | |
|
| | |
| |
| Posté le 07 août 2019 - 06:49 |
Bonjour,
Merci Voroltinquo avec ton lien, j'ai pu me débrouiller  |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
| Posté le 11 novembre 2022 - 21:53 |
Merci beaucoup pour ce code  |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|