Les rubriques (actu, forums, tutos) de Développez
Réseaux sociaux
10   0


 Discussion forum

Comment rechercher une valeur dans une table qui contient des paliers
Par Claude Leloup

Le , par ClaudeLELOUP, Rédacteur
Bonjour,

Je vous propose un petit tutoriel qui s'adresse aux débutants.
Il s'agit de rechercher dans une table, une valeur qui ne s'y trouve pas nécessairement et de choisir selon les circonstances : la valeur immédiatement supérieure (ou éventuellement égale) ou la valeur immédiatement inférieure.
Par exemple :



Access offre plusieurs voies pour atteindre ce but.
Dans ce tutoriel, nous utiliserons uniquement des fonctions intégrées sans recourir à du code VBA.
Nous aborderons l'utilisation des fonctions intégrées au moyen de quelques exemples pour illustrer la recherche d'une date, d'une heure, d'un texte ou d'une valeur numérique dans une table.
Si vous souhaitez donner votre avis sur ce tutoriel, profitez de cette discussion.
Merci déjà.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de f-leb f-leb - Responsable Corrections http://www.developpez.com
le 02/07/2012 à 22:20
Claude,

très bien illustré, mais surtout très pédagogique
Avatar de Richard_35 Richard_35 - Expert Confirmé Sénior http://www.developpez.com
le 04/07/2012 à 10:08
Bonjour Claude et Fabien,

Content de te "revoir", Claude (Fabien aussi, bien entendu ).

Bravo pour ce tuto à la portée des non-VBA-istes.
Avatar de ClaudeLELOUP ClaudeLELOUP - Rédacteur http://www.developpez.com
le 04/07/2012 à 11:14
Richard et Fabien,

Content de vous saluer.

Moins souvent ici que là-bas.

Si le cœur vous en dit, il y a du boulot !
Avatar de Philippe JOCHMANS Philippe JOCHMANS - Rédacteur/Modérateur http://www.developpez.com
le 05/07/2012 à 6:50
Salut Claude

Excellent, avec de nombreux exemples d'utilisation des fonctions de domaines

Philippe
Avatar de ClaudeLELOUP ClaudeLELOUP - Rédacteur http://www.developpez.com
le 05/07/2012 à 8:57
Bonjour Philippe,

Les tutoriels, c'est toi qui m'a donné l'envie d'en rédiger... et pour les fonctions de domaine, le tien fait référence.

Bien à toi.
Avatar de Domi2 Domi2 - Rédacteur/Modérateur http://www.developpez.com
le 05/07/2012 à 9:20
Bonjour Claude,

Moi qui ai toujours de la peine avec ces fonctions intégrées, je n'ai désormais plus beaucoup d'excuses.

Les exemples sont très bien choisis et surtout fort bien expliqués.

Bravo

Domi2
Avatar de f-leb f-leb - Responsable Corrections http://www.developpez.com
le 05/07/2012 à 20:01
re moi,

je n'ai pas résisté il fallait que je tente avec une requête, une requête à construire avec les assistants, pour obtenir ce tableau:


Je m'étais dit qu'il ne reste plus qu'à chercher avec RechDom le taux dont la date saisie est située entre DateDebut et Datefin et le tour est joué (finger in ze nose).

La requête s'écrit:
Code sql : Sélectionner tout
1
2
3
4
5
6
7
8
SELECT TauxBCE.DateChangement AS DateDebut, 
       TauxBCE.Taux, 
       Nz(Min([TauxBCE_1].[DateChangement]) - 1, #12/31/2999#) AS DateFin 
FROM   TauxBCE 
       LEFT JOIN TauxBCE AS TauxBCE_1 
              ON TauxBCE_1.DateChangement > TauxBCE.DateChangement 
GROUP  BY TauxBCE.DateChangement, 
          TauxBCE.Taux;

Seulement à cause de l'inégalité dans la jointure, la requête n'est pas interprétable dans le QBE d'Access

Bien essayé Fabien
Avatar de ClaudeLELOUP ClaudeLELOUP - Rédacteur http://www.developpez.com
le 06/07/2012 à 7:51
Salut Fabien,

finger in ze nose

Tiens les Anglais n’y mettent qu’un doigt ! (À vérifier.)

Peut-être que tu n’arrives pas à la fin, mais nom d’une pipe quelle performance dans la première partie !
Avatar de fsmrel fsmrel - Expert Confirmé Sénior http://www.developpez.com
le 06/07/2012 à 16:16
Bonjour,

L’effort réalisé par Fabien montre que la construction du tableau R_tauxBCE n’est pas un exercice trivial ; combien de développeurs ont-ils dû transpirer dans l’exercice fastidieux consistant à simuler des intervalles de dates ? (Un peu comme du temps des premières versions des SGBD/R, quand on ne disposait pas du type DATE et qu'on simulait tant bien que mal ce type et ses fonctions...)

L’utilisation des périodes (et plus généralement des intervalles de toutes natures) n’est quand même pas rare.

Est-ce que MS Access (que je ne connais pas très bien) propose un quelconque type INTERVALLE ? Dans la négative, permet-il aux laborieux utilisateurs que nous sommes de définir récursivement leurs propres types (avec les opérateurs qui vont bien) ? Par exemple avec MS SQL Server, c’est niet !

Si cela était possible, en SQL natif, on pourrait coder :

Code SQL : Sélectionner tout
1
2
3
4
5
6
CREATE TABLE R_tauxBCE 
( 
        Periode    INTERVAL_DATE    NOT NULL 
      , Taux       DECIMAL(5,3)     NOT NULL 
    , PRIMARY KEY (Periode) 
) ;

Où Periode est du type INTERVAL_DATE (type d’intervalle dont j’ai touché un mot ici).

Connaître le taux au 1er avril 2010 devient évidemment quelque chose de simple, but manifestement recherché par Fabien :

Code SQL : Sélectionner tout
1
2
3
SELECT Taux 
FROM   R_tauxBCE 
WHERE  '2010-04-01' BETWEEN BEGIN(Periode) AND END(Periode) ;


Tiens les Anglais n’y mettent qu’un doigt !


Vu l'utilisation de la lettre "z", ne s'agirait-il pas plutôt des Américains, friands de cette lettre ?
Avatar de ClaudeLELOUP ClaudeLELOUP - Rédacteur http://www.developpez.com
le 06/07/2012 à 16:37
Bonjour fsmrel,

Merci pour votre intervention.

Est-ce que MS Access (que je ne connais pas très bien) propose un quelconque type INTERVALLE ? Dans la négative, permet-il aux laborieux utilisateurs que nous sommes de définir récursivement leurs propres types (avec les opérateurs qui vont bien) ? Par exemple avec MS SQL Server, c’est niet !

Mes connaissances en la matière sont limitées : je ne peux vous répondre.

J'espère qu'un lecteur plus compétent réagira à la suite de votre billet.
Offres d'emploi IT
Product owner f/h
CDI
AXA - Ile de France - Nanterre - Les Terrasses
King de magento & prestashop
CDI
Mobiskill - Ile de France - Paris (75000)
Stage outil de gestion de projet h/f
Stage
Atos - Rhône Alpes - Lyon

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Access : Pierre Fauconnier - Arkham46 -