Bonjour à tous.
Pour info j'utilise acces 2003, mais je ne pense pas que ceci interfère.
Etant assez nul en SQL, je crée une requète et j'utilise en principe le code SQL dans le corps de mon programme. J'ai dans une table (2016TELE) les champs suivants, parmi d'autres : an, mois et jour et je souhaite connaître la dernière date enregistrée.
Pour ceci j'ai crée une requête en utilisant la fonction cdate pour extraire dans un seul champ (appelé date) le dernier jour enregistré.
Cette requète fonctionne parfaitement bien dans l'UI. En voici la syntaxe :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part SELECT Last(CDate([an] & "/" & [mois] & "/" & [jour])) AS [Date] FROM 2016TELE;
J'intègre ce code dans mon programme comme ceci :
Et là, j'ai le message suivant : erreur d'éxécution 13, incompatibilité de type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim db As Database Dim qdefDernierJour As QueryDef Dim rs1 As Recordset Set db = CurrentDb Set qdefDernierJour = db.CreateQueryDef("") With qdefDernierJour .SQL = "SELECT Last(CDate([an]& " / " & [mois] & " / " & [jour])) AS [Date]FROM 2016TELE" Set rs1 = .OpenRecordset rs1.MoveFirst End With
Un test avec : .SQL = "SELECT * FROM 2016TELE" passe sans problème. Il me semble donc qu'il peut s'agir d'un problème d'interprétation avec la fonction Cdate() dans la partie .SQL.
Sauriez vous comment écrire correctement ce query ?
Par avance, merci.
Partager