Erreur 3075 en VBA - Requête sql avec un SELECT
Résolu
Noriam
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Noriam Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Noriam Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'espère que vous pourrez m'aider.
Dans un formulaire, lorsque je clique sur Recherche, je lance mon code VBA et je souhaite inscrire le résultat d'une requête select dans un champs du même formulaire.
Sauf qu'il me marque qu'il y a une erreur d’exécution 3075 au niveau de la syntaxe et je ne trouve pas où (novice avec DAO). Une idée, s'il vous plait ?
Si vous avez une solution, merci d'avance.
J'espère que vous pourrez m'aider.
Dans un formulaire, lorsque je clique sur Recherche, je lance mon code VBA et je souhaite inscrire le résultat d'une requête select dans un champs du même formulaire.
Sauf qu'il me marque qu'il y a une erreur d’exécution 3075 au niveau de la syntaxe et je ne trouve pas où (novice avec DAO). Une idée, s'il vous plait ?
Private Sub Cmd_RechMoyenneAge_Click() Dim ASMAT As DAO.Database Dim Moyenne As DAO.Recordset Dim Sql As String DoCmd.SetWarnings False ' Base de données et requète Set ASMAT = CurrentDb Sql = "SELECT AVG(DATEDIFF(NOW(),T_Stagiaire.Date_Naissance_Stagiaire)) FROM T_Stagiaire WHERE (T_Stagiaire.[Stage_Base]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_PSC]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_Appro]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_Revision]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Numero_Inscription]='" & Me.Txt_Stage ' Ouverture du Recordset et inscription de la moyenne d'âge dans le formulaire Set Moyenne = ASMAT.OpenRecordset(Sql, dbOpenDynaset, dbReadOnly) Me.Txt_Moyenne = Moyenne ' Fermeture du Recordset Moyenne.Close ASMAT.Close DoCmd.SetWarnings True End Sub
Si vous avez une solution, merci d'avance.
A voir également:
- Erreur 3075 en VBA - Requête sql avec un SELECT
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
2 réponses
Bonjour,
À première vue, dans ton WHERE, tu ouvres une parenthèse et ne la refermes jamais.
Tu ne fermes pas non plus les guillemets sur le dernier champ.
Xavier
À première vue, dans ton WHERE, tu ouvres une parenthèse et ne la refermes jamais.
Tu ne fermes pas non plus les guillemets sur le dernier champ.
Xavier
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, si certains champs de la table sont de format numérique, tu ne peux pas les comparer à des chaines de caractères.
par exemple, si le dernier champ est numérique, tu pourrais faire ainsi:
par exemple, si le dernier champ est numérique, tu pourrais faire ainsi:
Sql = "SELECT AVG(DATEDIFF(NOW(),T_Stagiaire.Date_Naissance_Stagiaire)) FROM T_Stagiaire WHERE T_Stagiaire.[Stage_Base]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_PSC]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_Appro]='" & Me.Txt_Stage & "' " & _ " OR T_Stagiaire.[Stage_Revision]='" & Me.Txt_Stage & "' " & _ " OR str(T_Stagiaire.[Numero_Inscription])=' " & Me.Txt_Stage & "' "
J'ai corrigé ça. J'ai tellement la tête dedans que je ne l'avais même pas remarqué.
Maintenant, j'ai une autre erreur qui s'affiche :
Nombre d'arguments incorrect dans l'axpression AVG(DATEDIFF(NOW(),T_Stagiaire.Date_Naissance_Stagiaire))
Je vais peut-être faire un autre post pour ça. Merci d'avoir trouvé ma première erreur.
J'ai fait ça :
Il y a une erreur de syntaxe avec "yyyy" mais je vois pas.
En tout cas, un grand merci pour m'avoir déjà aidée.