salut à tous,
voila ce que je voudrai faire j'ai 2 tables je veux comparer plusieurs champs entre eux c'est a dire que je prend un champs de la table1 et je le compare à,par exemple ,5 champs de la table2,puis je prend un autre champ de la table1 que je compare a nouveau au 5 champs de la table2,jusque la ca peut aller mon principal probléme c'est que je voudrai que quand 2 valeurs concordent prendre le n° de l'enregistrement de la 2éme table pour l'inserer dans un champs de la 1ere
voila les champs ma table1,je veux comparer les réf de cette table:
Immo Désignation réf 01 réf 02 réf 03 réf 04 réf 05 réf 06 réf 07 réf 08 réf 09 réf 10 n°inv1 n°inv2 n°inv3 n°inv4 n°inv5 n°inv6 n°inv7 n°inv8 n°inv9 n°inv10
avec les réf de cette 2ème table:
n°fnr n°inv réf 01 réf 02 réf 03 réf 04 réf 05 réf 06 réf 07 réf 08 réf 09 réf 10
puis inserer le n°inv dans l'un des champs n°inv de la 1ère table
si par exemple la référence 4 de l'enregistrement 1 correspond à la ref 2 de l'enregistrement 3 de la 2éme table alors je copie le n°inv de de l'enregistrement 3 dans le n°inv1 de la table 1
voila ce que j'ai fais pour la selection :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Dim t1 As DAO.TableDef, t2 As DAO.TableDef Dim bd As DAO.Database, rq As DAO.QueryDef Dim strSQL As String, strWhere As String, sql1 As String Dim i As Integer Dim j As Integer Set bd = CurrentDb Set t1 = bd.TableDefs("Table1") Set t2 = bd.TableDefs("Table2") ' Génération du SQL strSQL = " Select " For i = 0 To t2.Fields.Count - 1 strSQL = strSQL & " b." & t2.Fields(i).Name & "," Next i strSQL = Left(strSQL, Len(strSQL) - 1) strSQL = strSQL & " from table1 a ,Table2 b Where " For j = 2 To t1.Fields.Count - 1 For i = 2 To t2.Fields.Count - 11 strWhere = strWhere & "a." & t1.Fields(j).Name & "=b." & t2.Fields(i).Name & " or " Next i Next j strWhere = Left(strWhere, Len(strWhere) - 3) strSQL = strSQL & strWhere ' Fin du SQL Set rq = bd.CreateQueryDef("tmp", strSQL) ' création de la requête DoCmd.OpenQuery "tmp" ' ouverture de la requête ' Récupération des variables-objet Set rq = Nothing Set t1 = Nothing Set t2 = Nothing Set bd = Nothing
je sais pa si je suis claire,merci d'avance pour l'aide que vous pourrez m'apporter
Partager