bonjour
je suis embêté avec mes requêtes sql en vba
quand j’exécute la requêtes sql max, elle me retourne toujours 9 alors qu'il y a le chiffre 10 dans la base(voir capture d'écran)
je suppose que c'est parce que ce sont des valeurs texte et pas numérique?
comment forcer un enregistrement en valeur numérique dans la base (fichier excel)?
ou
comment procéder autrement?
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
39
40
41 Public cn, rst As Variant Sub Sql() 'Connection Set cn = New ADODB.Connection With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\base de donnée.xlsb" & ";Excel 12.0;HDR=YES" .Open End With 'Définit la requête. Set rst = New ADODB.Recordset 'définition de la requette sql( récupération du dernier n° de feuille atdec) TexteSQL_N_d_archivage = "SELECT max(test1)FROM [bdd$]" 'Ecrit le résultat de la requête feuille atdec sélectionnée dans la cellule Set rst = cn.Execute(TexteSQL_N_d_archivage) ThisWorkbook.Worksheets("feuil1").Range("a1").CopyFromRecordset rst 'ajout d'un numéros de feuille atdec ThisWorkbook.Worksheets("feuil1").Range("a1") = ThisWorkbook.Worksheets("feuil1").Range("a1") + 1 'définition de la requette sql TexteSQL_archivage_gamme_de_tri = "INSERT INTO [bdd$] (test1) VALUES (" & ThisWorkbook.Worksheets("feuil1").Range("a1") & ")" 'met à jour ajout d'une gamme de tri dans la base cn.Execute TexteSQL_archivage_gamme_de_tri 'close cn.Close Set cn = Nothing End Sub
Partager