Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) & "'"
End If
Next
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message news:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à un
boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas grand
chose,compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code
sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et
dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de specifier
un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les clients
des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela
ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec Comme,
Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) & "'"
End If
Next
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message news:
9A771C54-E753-483D-ACEF-51293EB5BF11@microsoft.com...
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un
bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand
chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code
sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement et
dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier
un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les clients
des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela
ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme,
Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) & "'"
End If
Next
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message news:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à un
boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas grand
chose,compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code
sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et
dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de specifier
un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les clients
des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela
ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec Comme,
Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Merci de ton aide Jessy. J'ai essayé ton code mais je ne dois pas l'avoir
utilisé correctement (Je ne maitrise ni le visual basic ni le sql) car ça
ne
donne pas le résultat escompté. Celui de crinblanc marche très bien donc
je
pense que je vais en rester là.
Enore merci
BubuBonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message news:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à
un
boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas
grand
chose,compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code
sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
"
," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et
dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier
un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients
des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela
ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme,
Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Merci de ton aide Jessy. J'ai essayé ton code mais je ne dois pas l'avoir
utilisé correctement (Je ne maitrise ni le visual basic ni le sql) car ça
ne
donne pas le résultat escompté. Celui de crinblanc marche très bien donc
je
pense que je vais en rester là.
Enore merci
Bubu
Bonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message news:
9A771C54-E753-483D-ACEF-51293EB5BF11@microsoft.com...
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à
un
bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas
grand
chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code
sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
"
," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement
et
dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier
un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients
des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela
ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme,
Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Merci de ton aide Jessy. J'ai essayé ton code mais je ne dois pas l'avoir
utilisé correctement (Je ne maitrise ni le visual basic ni le sql) car ça
ne
donne pas le résultat escompté. Celui de crinblanc marche très bien donc
je
pense que je vais en rester là.
Enore merci
BubuBonjour
Perso je ferais comme ça pour définir ta variable "Critere" :
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message news:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets
?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à
un
boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas
grand
chose,compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code
sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
"
," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et
dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier
un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients
des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela
ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme,
Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme critère
de ma requete les valeurs entrées dans mon controle de formulaire mais y a
encore un petit bemol : mon champ [N° de departement] est un champ texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de département
sans guillement. Suis-je condamné à saisir avec des guillemets dans mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", " OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça dépasse
largement mes faibles compétences. J'ai essayé ton code associé à un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas grand chose,
compte tenu de mes faibles compétences en développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N° de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de département dans le
contrôle [Département] de mon formulaire, afin que la requete m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement et dans cette
requete, dans la zone critere j'ai mis la référence du controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour specifier un critere
dans une requete. Jusque la rien de complique mais ma difficulte c'est que je
souhaiterais que ce seul controle me permette de specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je souhaite que ma requete
affiche les clients du departement 86, il me suffit de taper 86 dans le
controle utilise comme critere du champ departement et cela marche tres bien.
Par contre si je veux que ma requete affiche les clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle, cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à
un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à
un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement
et dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à
un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"
End If
qdf.SQL = strSQL
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad que
lesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais
y aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets dans
monformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à
un boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,compte tenu de mes faibles compétences en
développement-programmation.Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
dedépartement] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTESORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"
End If
qdf.SQL = strSQL
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:1F178FCE-BD6B-42D0-8260-D74E0DA31BFA@microsoft.com...
Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code associé à
un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis pas
très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ departement
et dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un critere
dans une requete. Jusque la rien de complique mais ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requete
affiche les clients du departement 86, il me suffit de
taper 86 dans le
controle utilise comme critere du champ departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", " OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune, IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"
End If
qdf.SQL = strSQL
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" & tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne lorsqu'il
n'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad que
lesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire mais
y aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets dans
monformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " " ,"
ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " ", "
ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code associé à
un boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur de
compilation: Type défini par l'utilisateur non défini. Ce qui semble poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends pas
grand chose,compte tenu de mes faibles compétences en
développement-programmation.Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
" ," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1],ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE ORGANISME.[N°
dedépartement] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTESORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ departement
et dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire pour
specifier un criteredans une requete. Jusque la rien de complique mais ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier un ou plusieurscriteres pour un meme champ. Par exemple, lorsque je
souhaite que ma requeteaffiche les clients du departement 86, il me suffit de
taper 86 dans lecontrole utilise comme critere du champ departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon controle,
cela ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
le
champ pour lequel je veux fixer le critère dans ma requete et le contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''
au critère de ma requête. De plus les choses se sont un peu compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien
:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR
[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad
que
lesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire
mais
y aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dans
monformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"
ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "
ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code
associé à
un boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur
de
compilation: Type défini par l'utilisateur non défini. Ce qui semble
poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je
regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends
pas
grand chose,compte tenu de mes faibles compétences en
développement-programmation.Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES
ORGANISME]![Département], "
" ," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme],
ORGANISME.[Adresse
1],ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE
ORGANISME.[N°
dedépartement] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTESORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la
requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis
pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ
departement
et dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire
pour
specifier un criteredans une requete. Jusque la rien de complique mais
ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier un ou plusieurscriteres pour un meme champ. Par exemple, lorsque
je
souhaite que ma requeteaffiche les clients du departement 86, il me
suffit de
taper 86 dans lecontrole utilise comme critere du champ
departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon
controle,
cela ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
le
champ pour lequel je veux fixer le critère dans ma requete et le contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''
au critère de ma requête. De plus les choses se sont un peu compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien
:
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR
[Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
End If
qdf.SQL = strSQL
Merci de ton aide.
Bubu
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:1F178FCE-BD6B-42D0-8260-D74E0DA31BFA@microsoft.com...
Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad
que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.
Merci d'avance.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire
mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets
dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code
associé à
un bouton
recherche mais j'obtiens le message d'erreur suivant : Erreur
de
compilation
: Type défini par l'utilisateur non défini. Ce qui semble
poser
problème,
c'est l''expression suivante : qdf As QueryDef. Lorsque je
regarde
l'aide
associée à ce message d'erreur, j'avoue que je ne comprends
pas
grand chose,
compte tenu de mes faibles compétences en
développement-programmation.
Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.
Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le
"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES
ORGANISME]![Département], "
" ," OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme],
ORGANISME.[Adresse
1],
ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE
ORGANISME.[N°
de
département] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:
Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,
ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTES
ORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans le
contrôle [Département] de mon formulaire, afin que la
requete
m'affiche les
organismes de plusieurs départements. Désolé si je ne suis
pas
très clair et
merci.
Donne-moi le SQL de ta requête.
Oui la requete existe, elle contient le champ
departement
et dans cette
requete, dans la zone critere j'ai mis la référence du
controle de mon
formulaire. Est-ce plus claire comme ça ? Merci de ton
aide.
Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?
Bonjour a tous,
Je souhaite utiliser un controle de formulaire
pour
specifier un critere
dans une requete. Jusque la rien de complique mais
ma
difficulte c'est que je
souhaiterais que ce seul controle me permette de
specifier un ou plusieurs
criteres pour un meme champ. Par exemple, lorsque
je
souhaite que ma requete
affiche les clients du departement 86, il me
suffit de
taper 86 dans le
controle utilise comme critere du champ
departement et
cela marche tres bien.
Par contre si je veux que ma requete affiche les
clients des departements 86
ou 79, j'ai beau saisir 86 Ou 79 dans mon
controle,
cela ne marche pas. J'ai
essaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça ne
marche pas.
Pouvez-vous m'aider ? Par avance merci.
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
le
champ pour lequel je veux fixer le critère dans ma requete et le contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''
au critère de ma requête. De plus les choses se sont un peu compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien
:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR
[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad
que
lesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.
Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
comme
critèrede ma requete les valeurs entrées dans mon controle de formulaire
mais
y aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dans
monformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"
ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "
ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, ça
dépasselargement mes faibles compétences. J'ai essayé ton code
associé à
un boutonrecherche mais j'obtiens le message d'erreur suivant : Erreur
de
compilation: Type défini par l'utilisateur non défini. Ce qui semble
poser
problème,c'est l''expression suivante : qdf As QueryDef. Lorsque je
regarde
l'aideassociée à ce message d'erreur, j'avoue que je ne comprends
pas
grand chose,compte tenu de mes faibles compétences en
développement-programmation.Connais-tu la marche à suivre pour débloquer tout ça ?
Encore merci crinblanc.Crée un bouton "Recherche" pour ouvrir ta requête et mets ce
code sur le"Click"
Dim qdf As QueryDef, criteres as String
criteres = Replace(Forms![ETIQUETTES
ORGANISME]![Département], "
" ," ORForms![ETIQUETTES ORGANISME]![Département] = ")
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
qdf.SQL="SELECT ORGANISME.[Nom organisme],
ORGANISME.[Adresse
1],ORGANISME.Commune,
ORGANISME.[N° de département] FROM ORGANISME WHERE
ORGANISME.[N°
dedépartement] = " & criteres
SEPARE LES N° PAR UN ESPACE!!
"Bubu" wrote:Voici le SQL de ma requete :
SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1],
ORGANISME.Commune,ORGANISME.[N° de département]
FROM ORGANISME
WHERE (((ORGANISME.[N° de
département])=[Formulaires]![ETIQUETTESORGANISME]![Département]));
Ce que je voudrais c'est pouvoir saisir plusieurs N° de
département dans lecontrôle [Département] de mon formulaire, afin que la
requete
m'affiche lesorganismes de plusieurs départements. Désolé si je ne suis
pas
très clair etmerci.Donne-moi le SQL de ta requête.Oui la requete existe, elle contient le champ
departement
et dans cetterequete, dans la zone critere j'ai mis la référence du
controle de monformulaire. Est-ce plus claire comme ça ? Merci de ton
aide.Pas bien clair ton affaire!
La requête existe?
Si oui, un critère fait référence à ton contrôle de
formualire?Bonjour a tous,
Je souhaite utiliser un controle de formulaire
pour
specifier un criteredans une requete. Jusque la rien de complique mais
ma
difficulte c'est que jesouhaiterais que ce seul controle me permette de
specifier un ou plusieurscriteres pour un meme champ. Par exemple, lorsque
je
souhaite que ma requeteaffiche les clients du departement 86, il me
suffit de
taper 86 dans lecontrole utilise comme critere du champ
departement et
cela marche tres bien.Par contre si je veux que ma requete affiche les
clients des departements 86ou 79, j'ai beau saisir 86 Ou 79 dans mon
controle,
cela ne marche pas. J'aiessaye plusieurs syntaxes dans mon controle avec
Comme, Dans... mais ça nemarche pas.
Pouvez-vous m'aider ? Par avance merci.
Re,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2 &
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
lechamp pour lequel je veux fixer le critère dans ma requete et le contrôle
demon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
codeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''au critère de ma requête. De plus les choses se sont un peu compliquées
carj'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad
quelesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
commecritèrede ma requete les valeurs entrées dans mon controle de formulaire
maisy aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dansmonformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, çadépasselargement mes faibles compétences. J'ai essayé ton code
associé àun bouton
Re,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2 &
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:0D92A730-4068-491F-BB79-25D47BDEEB7A@microsoft.com...
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
le
champ pour lequel je veux fixer le critère dans ma requete et le contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''
au critère de ma requête. De plus les choses se sont un peu compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien
:
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR
[Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"
End If
qdf.SQL = strSQL
Merci de ton aide.
Bubu
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:1F178FCE-BD6B-42D0-8260-D74E0DA31BFA@microsoft.com...
Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire. Cad
que
les
utilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.
Merci d'avance.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
comme
critère
de ma requete les valeurs entrées dans mon controle de formulaire
mais
y a
encore un petit bemol : mon champ [N° de departement] est un champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets
dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !
Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code
associé à
un bouton
Re,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2 &
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion entre
lechamp pour lequel je veux fixer le critère dans ma requete et le contrôle
demon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec le
codeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la valeur
''au critère de ma requête. De plus les choses se sont un peu compliquées
carj'ai maintenant 2 contrôles dans mon formulaires qui me servent à fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça n'a
pasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES] ([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est obligatoire
dansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça marche
bien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département], " ",
"' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme], "+", "
OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE (Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 & ")"End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], " _
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire. Cad
quelesutilisateurs aient le choix de préciser ou pas le n° de département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
"", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
commecritèrede ma requete les valeurs entrées dans mon controle de formulaire
maisy aencore un petit bemol : mon champ [N° de departement] est un champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dansmonformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], " "
,"ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département], "
", "ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !Regarde dans le module si dans "références" tu as bien DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, çadépasselargement mes faibles compétences. J'ai essayé ton code
associé àun bouton
Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
je
t'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou
'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attentionRe,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entre
lechamp pour lequel je veux fixer le critère dans ma requete et le
contrôle
demon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
le
codeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur
''au critère de ma requête. De plus les choses se sont un peu
compliquées
carj'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'a
pasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est
obligatoire
dansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça
marche
bien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ",
"' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"
End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire.
Cad
quelesutilisateurs aient le choix de préciser ou pas le n° de
département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du
type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES
ORGANISME]![Département],
"", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
commecritèrede ma requete les valeurs entrées dans mon controle de
formulaire
maisy aencore un petit bemol : mon champ [N° de departement] est un
champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dansmonformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante
:
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
" "
,"ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !Regarde dans le module si dans "références" tu as bien
DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, çadépasselargement mes faibles compétences. J'ai essayé ton code
associé àun bouton
Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
je
t'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou
'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attention
Re,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:0D92A730-4068-491F-BB79-25D47BDEEB7A@microsoft.com...
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entre
le
champ pour lequel je veux fixer le critère dans ma requete et le
contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur
''
au critère de ma requête. De plus les choses se sont un peu
compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est
obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça
marche
bien
:
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR
[Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"
End If
qdf.SQL = strSQL
Merci de ton aide.
Bubu
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:1F178FCE-BD6B-42D0-8260-D74E0DA31BFA@microsoft.com...
Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire.
Cad
que
les
utilisateurs aient le choix de préciser ou pas le n° de
département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du
type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.
Merci d'avance.
Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES
ORGANISME]![Département],
"
", "'
OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:
C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
comme
critère
de ma requete les valeurs entrées dans mon controle de
formulaire
mais
y a
encore un petit bemol : mon champ [N° de departement] est un
champ
texte.
J'ai donc un message d'erreur lorsque je saisis mes numéros de
département
sans guillement. Suis-je condamné à saisir avec des guillemets
dans
mon
formulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante
:
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
" "
,"
OR
Forms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "
OR
ORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !
Regarde dans le module si dans "références" tu as bien
DAO3.6 ou
DAO...
"Bubu" wrote:
Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, ça
dépasse
largement mes faibles compétences. J'ai essayé ton code
associé à
un bouton
Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
je
t'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou
'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attentionRe,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entre
lechamp pour lequel je veux fixer le critère dans ma requete et le
contrôle
demon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
le
codeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur
''au critère de ma requête. De plus les choses se sont un peu
compliquées
carj'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'a
pasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est
obligatoire
dansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça
marche
bien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ",
"' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"
End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire.
Cad
quelesutilisateurs aient le choix de préciser ou pas le n° de
département.
Parcequ'en l'état actuel des choses j'ai un message d'erreur du
type
utilisation incorrect de Null lorsque je ne saisie rien dans mon
contrôle.Merci d'avance.Essaie çà
criteres = "'" & Replace(Forms![ETIQUETTES
ORGANISME]![Département],
"", "'OR
ORGANISME.[N° de département] = '") & "'"
"Bubu" wrote:C'est presque parfait. Ca semble vouloir marcher (ça fixe bien
commecritèrede ma requete les valeurs entrées dans mon controle de
formulaire
maisy aencore un petit bemol : mon champ [N° de departement] est un
champ
texte.J'ai donc un message d'erreur lorsque je saisis mes numéros de
départementsans guillement. Suis-je condamné à saisir avec des guillemets
dansmonformulaire ou y a-t-il moyen que le module ajoute lui-meme les
guillemets ?
Pour info, il a fallu que je modifie un peu la ligne suivante
:
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
" "
,"ORForms![ETIQUETTES ORGANISME]![Département] = ")
modifiée en :
criteres = Replace(Forms![ETIQUETTES ORGANISME]![Département],
"
", "ORORGANISME.[N° de département] = ")
Une fois de plus je te remercie pour ton aide EXTREMEMENT
PRECIEUSE !Regarde dans le module si dans "références" tu as bien
DAO3.6 ou
DAO...
"Bubu" wrote:Effectivement, je comprends mieux pourquoi je n'y arrivais
pas, çadépasselargement mes faibles compétences. J'ai essayé ton code
associé àun bouton
Re,
Y'a des fois je me dis... que je suis con ??? ;-)
C'est normal, remplaces la ligne :
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
par la ligne
str1 = Forms![ETIQUETTES ORGANISME]![Département]
et remplaces la ligne :
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
par la ligne :
str2 = Forms![ETIQUETTES ORGANISME]![Type organisme]
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
jet'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attentionRe,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ceque je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup jen'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entrelechamp pour lequel je veux fixer le critère dans ma requete et le
contrôledemon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
lecodeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ceque je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
nesaisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur''au critère de ma requête. De plus les choses se sont un peu
compliquéescarj'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'originemais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'apasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'aimes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est
obligatoiredansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisierien dans le deuxième contrôle. Par contre dans les autres cas ça
marchebien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ","' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Codepostal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire.
Cadquelesutilisateurs aient le choix de préciser ou pas le n° de
Re,
Y'a des fois je me dis... que je suis con ??? ;-)
C'est normal, remplaces la ligne :
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
par la ligne
str1 = Forms![ETIQUETTES ORGANISME]![Département]
et remplaces la ligne :
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
par la ligne :
str2 = Forms![ETIQUETTES ORGANISME]![Type organisme]
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:EFFBCB0D-C657-4139-98E3-022FC216F79A@microsoft.com...
Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
je
t'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou
'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attention
Re,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "
_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&
");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:0D92A730-4068-491F-BB79-25D47BDEEB7A@microsoft.com...
Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
code
que tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ce
que je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup je
n'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entre
le
champ pour lequel je veux fixer le critère dans ma requete et le
contrôle
de
mon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
le
code
que m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ce
que je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
ne
saisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur
''
au critère de ma requête. De plus les choses se sont un peu
compliquées
car
j'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2
critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'origine
mais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'a
pas
l'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'ai
mes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et
[Type organisme] ) qui me servent à fixer les critères des champs
Left([Code
postal], 2) et [Type organisme] de ma requête. La saisie est
obligatoire
dans
le premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisie
rien dans le deuxième contrôle. Par contre dans les autres cas ça
marche
bien
:
Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR
[Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2
Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ",
"' OR Left([Code postal],2) = '") & "'"
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "
OR [Type organisme]=")
strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Code
postal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"
End If
qdf.SQL = strSQL
Merci de ton aide.
Bubu
Bonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &
"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "
_
& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" <Bubu@discussions.microsoft.com> a écrit dans le message de
news:1F178FCE-BD6B-42D0-8260-D74E0DA31BFA@microsoft.com...
Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'il
n'y
rien de saisi dans le contrôle [Département] de mon formulaire.
Cad
que
les
utilisateurs aient le choix de préciser ou pas le n° de
Re,
Y'a des fois je me dis... que je suis con ??? ;-)
C'est normal, remplaces la ligne :
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
par la ligne
str1 = Forms![ETIQUETTES ORGANISME]![Département]
et remplaces la ligne :
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
par la ligne :
str2 = Forms![ETIQUETTES ORGANISME]![Type organisme]
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé Jessy, je sais que tu as déjà passé pas mal de temps là dessus et
jet'en suis très reconnaissant, mais ça ne marche pas : Y a pas de message
d'erreur mais quand j'exécute le code puis que j'ouvre la requête en mode
création, voilà ce que je trouve dans mon critère1 : 'Forms![ETIQUETTES'
Ou'ORGANISME]![Département]' et en critère2 j'ai : [Forms]![ETIQUETTES
ORGANISME]![Type organisme]. Du coup le requête ne donne rien en résultat.
Merci et encore désolé de monopoliser ton attentionRe,
Bon je ne suis pas tétu mais...
J'ai adapté ton code à tes besoins, si il plante, je veux bien
que tu me dises le message d'erreur parceque normalement
il devrait fonctionner sans problème
Quelques explications :
strSQL correspond à ton sql s'il n'y a aucun critères.
strFld1 correspond au premier champ de ta requête auquel tu veux
appliquer un critère
str1 correspond au critère du premier champ
tabX Split(str1, " ") te permet de stocker dans un tableau chaque
éléments de str1 qui sont séparé par un espace.
For ... Next permet de créer le premier critère s'il y en a un.
Les explications sont les même pour strFld2, str2 et tabX
sauf que pour le deuxième critère, le séparateur est le + à la place
de l'espace.
Pour finir le dernier algorythme (si alors...) permet de construire le
critère globale en testant si il y a critère1 et/ou un critère 2
Enfin bon, voici le code complet :
*********************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim str1 As String, str2 As String
Dim tabX
Dim intTab As Integer
Dim strFld As String, strFld2 As String
Dim strCritere As String
Dim strCritere1 As String
Dim strCritere2 As String
strSQL = "SELECT ORGANISME.[Nom organisme], " _
& "[Formulaires]![ETIQUETTES ORGANISME]![Destinataire] AS
Nompersonne, "_
& "ORGANISME.[Adresse 1], ORGANISME.[Adresse 2], " _
& "ORGANISME.[Code postal], ORGANISME.Commune, " _
& "IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-] " _
& "FROM ORGANISME"
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strFld1 = "Left([Code postal],2)="
str1 = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(str1) Or str1 = "" Then
strCritere1 = ""
Else
tabX = Split(str1, " ")
For intTab = 0 To UBound(tabX)
If strCritere1 = "" Then
strCritere1 = strFld1 & "'" & tabX(intTab) & "'"
Else
strCritere1 = strCritere1 & " OR " & strFld1 & "'" &
tabX(intTab) & "'"
End If
Next
End If
strFld2 = "[Type organisme]="
str2 = "Forms![ETIQUETTES ORGANISME]![Type organisme]"
If IsNull(str2) Or str2 = "" Then
strCritere2 = ""
Else
tabX = Split(str2, "+")
For intTab = 0 To UBound(tabX)
If strCritere2 = "" Then
strCritere2 = strFld2 & tabX(intTab)
Else
strCritere2 = strCritere2 & " OR " & strFld2 & tabX(intTab)
End If
Next
End If
If strCritere1 = "" Then
If strCritere2 = "" Then
strCritere = ";"
Else
strCritere = " WHERE (" & strCritere2 & ");"
End If
Else
If strCritere2 = "" Then
strCritere = " WHERE (" & strCritere1 & ");"
Else
strCritere = " WHERE (" & strCritere1 & ") AND (" & strCritere2
&");"
End If
End If
strSQL = strSQL & strCritere
qdf.SQL = strSQL
*********************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Bonjour Jessy,
Merci encore de t'intéresser à mon cas. J'ai bien essayé d'utiliser le
codeque tu m'as fourni pour répondre à mon problème mais ça ne me donne
pas ceque je veux et j'avoue que je n'y connais rien en visual Basic. Du
coup jen'arrive pas à voir où ça cloche. Apparemment il y a une confusion
entrelechamp pour lequel je veux fixer le critère dans ma requete et le
contrôledemon formulaire qui me sert à fixer ce critère. J'ai donc essayé avec
lecodeque m'a indiqué "crinblanc", en l'adaptant un peu pour essayer de
faire ceque je voulais. Ca marche presque mais j'ai toujours un hic lorsque je
nesaisis rien dans le contrôle de mon formulaire. Il donne alors la
valeur''au critère de ma requête. De plus les choses se sont un peu
compliquéescarj'ai maintenant 2 contrôles dans mon formulaires qui me servent à
fixer 2critères de ma requête. Je sais que tu n'es pas l'auteur du code
d'originemais peut être pourras-tu m'aider à corriger ce qui ne va pas, car ça
n'apasl'air d'être grand chose (mais ce n'est qu'une impression). En résumé
j'aimes deux contrôles du formulaire [ETIQUETTES ORGANISMES]
([Département] et[Type organisme] ) qui me servent à fixer les critères des champs
Left([Codepostal], 2) et [Type organisme] de ma requête. La saisie est
obligatoiredansle premier contrôle mais pas dans le deuxième.
Voici le code que j'ai utilisé et qui ne marche pas lorsque je ne
saisierien dans le deuxième contrôle. Par contre dans les autres cas ça
marchebien:Dim qdf As QueryDef
Dim criteres As String
Dim criteres2 As String
Dim strSQL As String
Set qdf = CurrentDb.QueryDefs("[ADRESSE organisme au choix]")
If IsNull(Forms![ETIQUETTES ORGANISME]![Département]) Then
criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "OR[Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE [Type
organisme]=" & criteres2Else
criteres = "'" & Replace(Forms![ETIQUETTES ORGANISME]![Département],
" ","' OR Left([Code postal],2) = '") & "'"criteres2 = Replace(Forms![ETIQUETTES ORGANISME]![Type organisme],
"+", "OR [Type organisme]=")strSQL = "SELECT ORGANISME.[Nom organisme], [Formulaires]![ETIQUETTES
ORGANISME]![Destinataire] AS Nompersonne, ORGANISME.[Adresse 1],
ORGANISME.[Adresse 2], ORGANISME.[Code postal], ORGANISME.Commune,
IIf([Pays]='FRANCE',Null,[Pays]) AS [Pays-]FROM ORGANISME WHERE
(Left([Codepostal], 2) =" & criteres & ")" & "AND ([Type organisme]=" & criteres2 &
")"End If
qdf.SQL = strSQL
Merci de ton aide.
BubuBonjour
Essais le code complet suivante :
******************************************************
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strX As String
Dim tabX
Dim intTab As Integer
Dim strFld As String
Dim strCritere As String
Set qdf = CurrentDb.QueryDefs("Nom-de-ta-requête")
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse 1], "
_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME"
strFld = "ORGANISME.[N° de département]="
strX = "Forms![ETIQUETTES ORGANISME]![Département]"
If IsNull(strX) Or strX = "" Then
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] FROM ORGANISME;"
Else
tabX = Split(strX, " ")
For intTab = 0 To UBound(tabX)
If strCritere = "" Then
strCritere = strFld & "'" & tabX(intTab) & "'"
Else
strCritere = strCritere & " OR " & strFld & "'" &
tabX(intTab) &"'"
End If
Next
strSQL = "SELECT ORGANISME.[Nom organisme], ORGANISME.[Adresse
1], "_& "ORGANISME.Commune, " _
& "ORGANISME.[N° de département] " _
& "FROM ORGANISME WHERE " & strCritere & ";"
End If
qdf.SQL
******************************************************
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bubu" a écrit dans le message de
news:Désolé c'est encore moi : comment faire pour le code fonctionne
lorsqu'iln'yrien de saisi dans le contrôle [Département] de mon formulaire.
Cadquelesutilisateurs aient le choix de préciser ou pas le n° de