Bonjour,

Dans une table j'ai plusieurs champs qui peuvent contenir 3 valeurs. Je voudrais parcourir tous les champs de la table et regrouper toutes les valeurs identique dans une autre table (les trois premières colonnes ont des valeurs variable). Par exemple une table étudiant, je voudrais regrouper tous les etudiant qui sont en 3e dans une autre table, les 4e dans une autre tables et ainsi de suite.

J'ai testé ce code mais il me retourne une erreur: erreur 3219 Opération non valide.

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
35
36
37
38
 
Dim sql, opt, val As String
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
 
Set db = CurrentDb
 
Set tdf = db.TableDefs("MaTable")
  For Each fld In tdf.Fields
    If fld.Type = dbText Then
 
        If fld.Value = "Valeur1" Then
            opt = fld.Name
            val = fld.Value
            sql = "INSERT INTO AutreTable(col1, col2) VALUES (val, opt);"
            DoCmd.RunSQL sql
 
        ElseIf fld.Value = "Valuer2" Then
            opt = fld.Name
            val = fld.Value
            sql = "INSERT INTO AutreTable(col1, col2) VALUES (val, opt);"
            DoCmd.RunSQL sql
            DoCmd.RunSQL sql
 
       ElseIf fld.Value = "Valuer3" Then
            opt = fld.Name
            val = fld.Value
            sql = "INSERT INTO AutreTable(col1, col2) VALUES (val, opt);"
            DoCmd.RunSQL sql
            DoCmd.RunSQL sql
        End If
    End If
  Next fld
 
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing
L'erreur est à cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 If fld.Value = "Valeur1" Then