Bonjour à tous
Je suis débutant en VB, Access et tout ce qui y touche de près ou de loin.
Je travaille actuellement à l'élaboration d'un logiciel statistique sous Access 2003.
Je vous explique rapidement le fonctionnement de ce logiciel:
- Je récupère des données à partir de fichiers .txt ou .csv
- Je les convertis en tables dans une base de données
- A partir d'une interface graphique, je coche une case dans une table pour effectuer un tri en fonction de la case cochée
- Je dois ensuite ressortir le résultat sous la forme d'une table avec pour colonnes, 1-la colone au nom de la variable sélectionnée, 2-le nombre de fois que l'on rencontre cette variables dans la table sur laquelle est effectuée le tri.
J'arrive à saisir correctement la variables à traiter, mais lorsque je veux l'insérer dans ma requêtes SQL et insérer le résultat de cette requête dans une autre table, je ne sais pas comment faire.
Je vous mets le code afin que vous puissiez m'éclairer:
Je me suis aperçu que lorsque je ne mets pas la variable entre '& Chr(9) &', cela ne marche pas et me renvoie un message d'erreur.
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 Sub Tri_à_plat(val As String) ' Déclaration des variables Dim db As Database, Td As TableDef, Tp As Recordset, valeur As String Dim Sql As String, Sql2 As String, Ts As TableDef Dim I As Byte, champ As String, MT As Recordset, nb As String Set db = CurrentDb() ' initialisation de la Base de Données Set Td = db.TableDefs("Réclamations") ' initialisation de la table source valeur = val 'valeur récupérée et servant au tri Sql = "CREATE TABLE Résultats ( " & Chr(9) & valeur & Chr(9) & _ " CHAR(255), Nombre CHAR(255));" ' requête de création de la table résultat ' db.Execute (Sql) ' Set Tp = db.Recordsets("Résultats") 'initialisation de la table de destination Sql2 = "INSERT INTO Résultats (" & Chr(9) & valeur & Chr(9) & ", Nombre) SELECT " & Chr(9) & valeur & Chr(9) & ",Count(" & Chr(9) & valeur & Chr(9) & ") As Nombre FROM Réclamations WHERE Réclamations.[" & Chr(9) & valeur & Chr(9) & "];" ' requêtes qui compte le nombre de fois qu'est rencontrée la variable db.Execute (Sql2) MT.MoveFirst Imax = MT.RecordCount - 1 I = 0 While Not MT.EOF And Not I = Imax Tp.AddNew Tp(& Chr(9) & valeur & Chr(9) & )= MT.Field(I) Wend End Sub
Merci de m'aider dans ma tâche!
Bonne journée!
Partager