Salut,
"chev92"
| Sur une table contenant les champs nommés A,B,C,D,E ,etc ... je voudrais
| créer automatiquement une requête à partir de choix multiples faits dans un
| formulaire avec des cases à cocher.
| Par exemple : si je coche A,B et D dans le formulaire, la requête me
| retourne les infos contenues dans les champs A,D et D de la table.
| Ce sont donc les choix faits dans le formulaire qui vont définirles colonnes
| des items de la requête.
| Comment cela peut-il se construire ou se programmer ?
| Merci d'avance de votre aide.
Il suffit que tu construise ta "chaîne SQL" selon les cases cochées...
Dim sSQL as String
sSQL = "Select "
if case1=true then
sSQL = sSQL & "ChampA ,"
end if
if case2 = true then
sSQL = sSQL & "ChampB,"
end if
if caseN
...
end if
'supprimer la dernière virgule
sSQL = Left(sSQL, Len(sSQL)-1)
sSQL = sSQL & " From TableMachin;"
c'est juste le principe :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
"chev92"
| Sur une table contenant les champs nommés A,B,C,D,E ,etc ... je voudrais
| créer automatiquement une requête à partir de choix multiples faits dans un
| formulaire avec des cases à cocher.
| Par exemple : si je coche A,B et D dans le formulaire, la requête me
| retourne les infos contenues dans les champs A,D et D de la table.
| Ce sont donc les choix faits dans le formulaire qui vont définirles colonnes
| des items de la requête.
| Comment cela peut-il se construire ou se programmer ?
| Merci d'avance de votre aide.
Il suffit que tu construise ta "chaîne SQL" selon les cases cochées...
Dim sSQL as String
sSQL = "Select "
if case1=true then
sSQL = sSQL & "ChampA ,"
end if
if case2 = true then
sSQL = sSQL & "ChampB,"
end if
if caseN
...
end if
'supprimer la dernière virgule
sSQL = Left(sSQL, Len(sSQL)-1)
sSQL = sSQL & " From TableMachin;"
c'est juste le principe :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
"chev92"
| Sur une table contenant les champs nommés A,B,C,D,E ,etc ... je voudrais
| créer automatiquement une requête à partir de choix multiples faits dans un
| formulaire avec des cases à cocher.
| Par exemple : si je coche A,B et D dans le formulaire, la requête me
| retourne les infos contenues dans les champs A,D et D de la table.
| Ce sont donc les choix faits dans le formulaire qui vont définirles colonnes
| des items de la requête.
| Comment cela peut-il se construire ou se programmer ?
| Merci d'avance de votre aide.
Il suffit que tu construise ta "chaîne SQL" selon les cases cochées...
Dim sSQL as String
sSQL = "Select "
if case1=true then
sSQL = sSQL & "ChampA ,"
end if
if case2 = true then
sSQL = sSQL & "ChampB,"
end if
if caseN
...
end if
'supprimer la dernière virgule
sSQL = Left(sSQL, Len(sSQL)-1)
sSQL = sSQL & " From TableMachin;"
c'est juste le principe :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
"chev92"
| Maintenant, l'étape suivante :
| 1- puis-je sauvegarder cette chaîne SQL en tant que requête ?
évidement... regarde :
CreateQueryDef (NomDeLaRequete, strSQL)
| 2- comment puis programmer l'éxécution de cette chaîne pour extraire les
| infos de ma table ?
Pour juste afficher la requête ?
DoCmd.OpenQuery "NomDeLaRequête"
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
"chev92"
| Maintenant, l'étape suivante :
| 1- puis-je sauvegarder cette chaîne SQL en tant que requête ?
évidement... regarde :
CreateQueryDef (NomDeLaRequete, strSQL)
| 2- comment puis programmer l'éxécution de cette chaîne pour extraire les
| infos de ma table ?
Pour juste afficher la requête ?
DoCmd.OpenQuery "NomDeLaRequête"
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
"chev92"
| Maintenant, l'étape suivante :
| 1- puis-je sauvegarder cette chaîne SQL en tant que requête ?
évidement... regarde :
CreateQueryDef (NomDeLaRequete, strSQL)
| 2- comment puis programmer l'éxécution de cette chaîne pour extraire les
| infos de ma table ?
Pour juste afficher la requête ?
DoCmd.OpenQuery "NomDeLaRequête"
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Salut,
Que représente ceci ? & "" ± "" &
Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
Attention aussi au VBA qui n' utilise que les expressions anglaises !
=[Formulaires]![form Multichoix]....
devient =Forms![form Multichoix]...
éviter aussi "form Multichoix" et préférer "frmMultichoix"
Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
"chev92"
| Je me heurte maintenant à un problème de définition de cette fonction
| CerateQueryDef. C'est sûrement tout bête, mais je rame parce que je suis
| complètement néophyte dans en matière de programmation dans Access.
| Pour être plus efficace, voici le texte de la procédure événementielle de
| sortie de mon formulaire "form Multichoix" (par action sur un bouton
| "Éxécuter"), pour créer une requête qui devrait s'appeler "req Multichoix"
| [AnMInEl et Echant sont des tables de ma DB] :
| =============================== > | Private Sub Exécuter_Click()
| On Error GoTo Err_Exécuter_Click
|
| Dim sSQL As String
| sSQL = "SELECT Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait,"
| If Option_S = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![S]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![S]))),"
| End If
| If Option_Cu = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Cu]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Cu]))),"
| End If
| If Option_Fe = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Fe]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Fe]))),"
| End If
| sSQL = Left(sSQL, Len(sSQL) - 1)
| sSQL = sSQL & " FROM Échant INNER JOIN AnMinEl ON Échant.Échant_Numéro > | AnMinEl.Échant_Numéro" & _
| " GROUP BY Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait" & _
| " HAVING (((Échant.Or_Ethnic)=[Formulaires]![form Multichoix]![Choix
| Origine_Ethnique]) AND" & _
| " ((Échant.TypeCheveu)=[Formulaires]![form Multichoix]![Choix
| Type_Cheveux])" & _
| " AND ((Échant.NbTrait)=0));"
| MsgBox (sSQL)
| Set sQDF = Me.CreateQueryDef("req Multichoix", sSQL)
| MsgBox ("REQ CREEE")
| DoCmd.OpenQuery ("req Multichoix")
|
| Exit_Exécuter_Click:
| Exit Sub
|
| Err_Exécuter_Click:
| MsgBox Err.Description
| Resume Exit_Exécuter_Click
|
| End Sub
| =============================== >
Salut,
Que représente ceci ? & "" ± "" &
Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
Attention aussi au VBA qui n' utilise que les expressions anglaises !
=[Formulaires]![form Multichoix]....
devient =Forms![form Multichoix]...
éviter aussi "form Multichoix" et préférer "frmMultichoix"
Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
"chev92"
| Je me heurte maintenant à un problème de définition de cette fonction
| CerateQueryDef. C'est sûrement tout bête, mais je rame parce que je suis
| complètement néophyte dans en matière de programmation dans Access.
| Pour être plus efficace, voici le texte de la procédure événementielle de
| sortie de mon formulaire "form Multichoix" (par action sur un bouton
| "Éxécuter"), pour créer une requête qui devrait s'appeler "req Multichoix"
| [AnMInEl et Echant sont des tables de ma DB] :
| =============================== > | Private Sub Exécuter_Click()
| On Error GoTo Err_Exécuter_Click
|
| Dim sSQL As String
| sSQL = "SELECT Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait,"
| If Option_S = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![S]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![S]))),"
| End If
| If Option_Cu = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Cu]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Cu]))),"
| End If
| If Option_Fe = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Fe]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Fe]))),"
| End If
| sSQL = Left(sSQL, Len(sSQL) - 1)
| sSQL = sSQL & " FROM Échant INNER JOIN AnMinEl ON Échant.Échant_Numéro > | AnMinEl.Échant_Numéro" & _
| " GROUP BY Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait" & _
| " HAVING (((Échant.Or_Ethnic)=[Formulaires]![form Multichoix]![Choix
| Origine_Ethnique]) AND" & _
| " ((Échant.TypeCheveu)=[Formulaires]![form Multichoix]![Choix
| Type_Cheveux])" & _
| " AND ((Échant.NbTrait)=0));"
| MsgBox (sSQL)
| Set sQDF = Me.CreateQueryDef("req Multichoix", sSQL)
| MsgBox ("REQ CREEE")
| DoCmd.OpenQuery ("req Multichoix")
|
| Exit_Exécuter_Click:
| Exit Sub
|
| Err_Exécuter_Click:
| MsgBox Err.Description
| Resume Exit_Exécuter_Click
|
| End Sub
| =============================== >
Salut,
Que représente ceci ? & "" ± "" &
Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
Attention aussi au VBA qui n' utilise que les expressions anglaises !
=[Formulaires]![form Multichoix]....
devient =Forms![form Multichoix]...
éviter aussi "form Multichoix" et préférer "frmMultichoix"
Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
"chev92"
| Je me heurte maintenant à un problème de définition de cette fonction
| CerateQueryDef. C'est sûrement tout bête, mais je rame parce que je suis
| complètement néophyte dans en matière de programmation dans Access.
| Pour être plus efficace, voici le texte de la procédure événementielle de
| sortie de mon formulaire "form Multichoix" (par action sur un bouton
| "Éxécuter"), pour créer une requête qui devrait s'appeler "req Multichoix"
| [AnMInEl et Echant sont des tables de ma DB] :
| =============================== > | Private Sub Exécuter_Click()
| On Error GoTo Err_Exécuter_Click
|
| Dim sSQL As String
| sSQL = "SELECT Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait,"
| If Option_S = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![S]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![S]))),"
| End If
| If Option_Cu = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Cu]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Cu]))),"
| End If
| If Option_Fe = True Then
| sSQL = sSQL & " CStr(Fix(Avg([AnMinEl]![Fe]))) & "" ± "" &
| CStr(Fix(StDev([AnMinEl]![Fe]))),"
| End If
| sSQL = Left(sSQL, Len(sSQL) - 1)
| sSQL = sSQL & " FROM Échant INNER JOIN AnMinEl ON Échant.Échant_Numéro > | AnMinEl.Échant_Numéro" & _
| " GROUP BY Échant.Or_Ethnic, Échant.TypeCheveu, Échant.NbTrait" & _
| " HAVING (((Échant.Or_Ethnic)=[Formulaires]![form Multichoix]![Choix
| Origine_Ethnique]) AND" & _
| " ((Échant.TypeCheveu)=[Formulaires]![form Multichoix]![Choix
| Type_Cheveux])" & _
| " AND ((Échant.NbTrait)=0));"
| MsgBox (sSQL)
| Set sQDF = Me.CreateQueryDef("req Multichoix", sSQL)
| MsgBox ("REQ CREEE")
| DoCmd.OpenQuery ("req Multichoix")
|
| Exit_Exécuter_Click:
| Exit Sub
|
| Err_Exécuter_Click:
| MsgBox Err.Description
| Resume Exit_Exécuter_Click
|
| End Sub
| =============================== >
re,
"chev92"
| > Que représente ceci ? & "" ± "" &
| Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
| convertis en texte, des calculs de la moyenne et de l'écart-type, sous la
| forme m ± s.
Ce genre de signe est à proscrire dans des noms de champ...
et nécessite d'être entouré de crochets par sécurité
[m ± s]
| >
| > Attention aussi au VBA qui n' utilise que les expressions anglaises !
| >
| > =[Formulaires]![form Multichoix]....
| >
| > devient =Forms![form Multichoix]...
| Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
| été installé, c'est pourquoi je les ai repris dans l'expression de la chaîne
| SQL.
Il ne faut pas récuperer cela dans "l'interface" utilisateur (grille de requête)
mais bien dans l'affichagede la requête en mode SQL
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
re,
"chev92"
| > Que représente ceci ? & "" ± "" &
| Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
| convertis en texte, des calculs de la moyenne et de l'écart-type, sous la
| forme m ± s.
Ce genre de signe est à proscrire dans des noms de champ...
et nécessite d'être entouré de crochets par sécurité
[m ± s]
| >
| > Attention aussi au VBA qui n' utilise que les expressions anglaises !
| >
| > =[Formulaires]![form Multichoix]....
| >
| > devient =Forms![form Multichoix]...
| Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
| été installé, c'est pourquoi je les ai repris dans l'expression de la chaîne
| SQL.
Il ne faut pas récuperer cela dans "l'interface" utilisateur (grille de requête)
mais bien dans l'affichagede la requête en mode SQL
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
re,
"chev92"
| > Que représente ceci ? & "" ± "" &
| Il s'agit d'une chaîne de caractères qui est concaténée avec les résultats,
| convertis en texte, des calculs de la moyenne et de l'écart-type, sous la
| forme m ± s.
Ce genre de signe est à proscrire dans des noms de champ...
et nécessite d'être entouré de crochets par sécurité
[m ± s]
| >
| > Attention aussi au VBA qui n' utilise que les expressions anglaises !
| >
| > =[Formulaires]![form Multichoix]....
| >
| > devient =Forms![form Multichoix]...
| Les termes en français dans les requêtes proviennent d'Access tel qu'il m'a
| été installé, c'est pourquoi je les ai repris dans l'expression de la chaîne
| SQL.
Il ne faut pas récuperer cela dans "l'interface" utilisateur (grille de requête)
mais bien dans l'affichagede la requête en mode SQL
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/