| auteur : Maxence HUBICHE |
Les requêtes Access ne sont pas case sensitive. Mais la fonction Instr() a un argument de définition de la méthode de comparaison. Select * from XXX where instr (1 ,Nom,
|
|
| auteur : Maxence HUBICHE | Pour faire un VRAI paramètre, il y a 2 étapes :
1/ Aller dans Requêtes/Paramètres ... et définir le paramètre
Par exemple :
Nom du paramètre : Choisir Année
Type de données : Entier
2/ L'utiliser en l'inscrivant entre crochets.
Exemple :
. . . WHERE [Choisir Année] = . . .
|
|
| auteur : Demco | Parameters [Entrez une valeur numérique :] integer;
Select * From LATABLE
Where MONCHAMP = [Entrez une valeur numérique :];
|
Ainsi, si vous saisissez 'blablabla' un message d'erreur vous indiquera que la valeur saisie est incorrecte et vous invitera à recommencer.
Donc integer pour un entier, date pour une date, text pour du texte etc.
|
| auteur : Team Access | Dans les instructions SQL, la plupart des versions MS Access attendent des dates au format américain (mm/dd/yyyy). Dans les clauses de la requête,
les champs typés utilisent des caractères de type : MonChamp= Valeur
MonChamp= " Valeur "
|
(on peut aussi avoir 'Valeur', mais cette solution est dangereuse. En effet, s'il y a une apostrophe dans Valeur, la clause SQL se perd dans ces apostrophes...)
|
| auteur : Maxence HUBICHE | Vous voulez que lorsque vous tapez par exemple "infirmiere", on trouve "infirmiére", "infirmière" ou "infirmiere" et vice versa. Bref vous souhaitez sélectionner le mot quelque soit l'accent se trouvant sur le 'e'.
Il suffit d'écrire la requête comme ceci : Select * From MATABLE Where MONCHAMP Like
|
|
| auteur : Frank | Utilisez : *
Select * From MATABLE Where VILLE Like " *an "
|
|
| auteur : Demco | Tout d'abord, il faut éviter d'utiliser des symboles pour les noms de table ou de champ. Mais si vous ne pouvez échaper à cette contrainte, solutionnez le problème en mettant des crochets.
|
| auteur : Maxence HUBICHE | Exemple :
Select * From MATABLE Where VILLE Like " *bord* "
|
Essayez le signe %
Select * From MATABLE Where VILLE Like " %bord% "
|
C'est par exemple utile lorsque l'on exploite une base de données Access avec Visual Basic.
|
| auteurs : Demco, Tofalu |
La zone de texte se nomme zdt
champ de type numérique :
MonSQL = " Select * From MATABLE Where MONCHAMP = " & zdt
|
champ de type Chaîne de caractères :
MonSQL = " Select * From MATABLE Where MONCHAMP = ' " & zdt & " ' "
|
ou bien :
monsql = " Select * From MATABLE Where " & BuildCriteria (" MonChamp " , dbText, zdt)
|
champ de type Date : MonSQL = " Select * From MATABLE Where MONCHAMP = # " & zdt & " # "
|
ou bien :
monsql = " Select * From MATABLE Where " & BuildCriteria (" MonChamp " , dbDate, zdt)
|
|
| auteurs : Gaël Donat, FRED.G | Exemple de question :
ma requête extrait des données et produit, par ligne, les champs "ID" et "VAL1", "VAL2","VAL3". Est-il possible de créer un nouveau champ "TOTAL", indépendant, et dont la valeur est conditionnée par la valeur de ID.
Exemple : si ID = "A", TOTAL = VAL1 + VAL2
si ID = "B", TOTAL = VAL2 + VAL3
si ID = "C", TOTAL = VAL1 + VAL2 + VAL3
3 fonctions permettent d'effectuer un tel calcul :
1) IIf (VraiFaux()). Pour vérifier plusieurs conditions, il possible d'imbriquer plusieurs Iff.
Pour notre exemple :
Select TEST. ID , IIf ([ID]=
From TEST;
|
2) Switch() (PremVrai()). Les arguments de cette expression fonctionnent comme ceci :
Condition à vérifier; Résultat si condition vraie
Pour notre exemple :
Select TEST. ID , Switch ([ID]=
From TEST;
|
3) Choose() (Choisir()). Cette fonction n'est utile que si la condition à vérifier correspond à un nombre renvoyé par un seul et même champ de la requête. Généralement, le champ à vérifier est la colonne liée d'une petite zone de liste.
Dans cette fonction le premier argument est le champ à vérifier. Le deuxième argument indique la valeur à renvoyer si le premier argument vaut 1, le troisième argument indique la valeur à renvoyer si le premier argument vaut 2, etc.
Revenons à notre exemple. Si le champ ID avait renvoyé un nombre et qu'au lieu de A, B, C... nous avions 1, 2, 3..., voici comment nous aurions pu utiliser la fonction Choose :
Select TEST. ID , Choose ([ID],[VAL1]+ [VAL2],[VAL2]+ [VAL3],[VAL1]+ [VAL2]+ [VAL3]) AS Total
From TEST;
|
Remarque : ces 3 fonctions évaluent systématiquement la totalité de leurs arguments par conséquent, mieux vaut les utiliser pour de petits calculs conditionnels.
Pour faire des tests complexes sur de nombreuses conditions, il sera préférable de créer une fonction personnalisée utilisant une instruction If Then Else ou Select Case.
|
| auteur : Trini |
Par exemple je suis en janvier 2006 et je veux avoir tous les enregistrement concernant le mois de février 2006. Je dois faire appel au critère suivant :
WHERE (((Year ([madate]))= Year (DateAdd (" m " ,1 ,Date ()))) AND ((Month ([madate]))= Month (DateAdd (" m " ,1 ,Date ()))));
|
Où madate est le champ de type date qui nous intéresse.
|
| auteur : Maxence HUBICHE |
Prenons l'exemple suivant :
Dans ma table, je souhaite retourner tous les enregistrements où le champ MonChamp contient le mot Masson. En utilisant le critère Comme '*masson*', je retournerais aussi les enregistrements contenant Tomasson. Si au contraire, je place des espaces entre les étoiles et le mots, je ne retournerait pas par exemple Lucien (Masson).
Pour cela, il suffit d'utiliser le critère suivant afin de vérifier que ce qui se trouve de chaque coté de masson n'est pas une lettre ce qui signifierait que masson est un mot à lui seul.
Comme '*[!a-z]masson[!a-z]*' Ou Comme 'masson[!a-z]*' Ou Comme '*[!a-z]masson' Ou 'masson'
|
| auteur : Cafeine |
Imaginons cette table :
Champ1
----------
Erreur
Erreur de saisie
**Erreur**
|
Le but est de réaliser une recherche qui retourne les lignes commençant par deux étoiles.
SELECT Champ1 FROM MATABLE WHERE CHAMP1 LIKE " *** "
|
Le caractère * étant un joker, cette requête retourne toutes les lignes.
Dans l'implémentation SQL d'Access les caractères jokers (wildcard) doivent être mis dans une charlist entre crochets [], ce qui donnerait ici :
SELECT Champ1 FROM MATABLE WHERE CHAMP1 LIKE " [*][*]* "
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2004
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|