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

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


 Discussion forum

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
http://www.developpez.com
Responsable Corrections
le 02/07/2012 22:20
Claude,

très bien illustré, mais surtout très pédagogique
Avatar de Richard_35 Richard_35
http://www.developpez.com
Expert Confirmé Sénior
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
http://www.developpez.com
Rédacteur
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
http://www.developpez.com
Rédacteur/Modérateur
le 05/07/2012 6:50
Salut Claude

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

Philippe
Avatar de ClaudeLELOUP ClaudeLELOUP
http://www.developpez.com
Rédacteur
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
http://www.developpez.com
Rédacteur/Modérateur
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
http://www.developpez.com
Responsable Corrections
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 :
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
http://www.developpez.com
Rédacteur
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
http://www.developpez.com
Expert Confirmé Sénior
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 :
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 :
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
http://www.developpez.com
Rédacteur
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
Développeur php h/f
CDD
CDS SOFT, Pôle Informatique du groupe STUDIEL - Provence Alpes Côte d'Azur - Villeneuve Loubet (06270)
Parue le 17/09/2014
Ingénieur test et validation (h/f)
CDI
Kacileo - Ile de France - Paris (75000)
Parue le 10/09/2014
Ingénieur(e) développement java /web
CDI
CDS SOFT - Provence Alpes Côte d'Azur - Sophia-Antipolis
Parue le 01/10/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula