IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Parcours d'un recordset


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut Parcours d'un recordset
    Bonjour à tous,

    Je fais actuellement des recherches dans une base de données et je
    bute sur un léger problème, débutant sur Access et encore plus sur VB.

    Ma base contient des noms de produits et des dates de livraison. A un
    produit peuvent naturellement correspondre plusieurs dates de
    livraison.

    Je cherche à créer une fonction qui prend en paramètres le nom d'un
    produit NOM_PR et une date D. Cette fonction doit renvoyer la date de
    livraison de NOM_PR immédiatement inférieure, voire égale, à D.

    Mon idée est donc d'extraire toutes les dates correspondant à NOM_PR
    dans un recordset par le biais d'une requête SQL, ce que j'ai réussi à
    faire.

    Cela dit, je n'arrive pas à afficher le contenu de ce recordset, ni à
    comparer les dates qu'il contient à D pour sélectionner celle que je
    cherche.

    Pensez-vous que ma méthode est optimale ? Et si oui, avez-vous des
    pistes pour que je complète mon code ?

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour,

    Une requête du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROm MaTable WHERE NOM_PR = """ & sNomProd & """ and D <= #" & Format(dteLivraison, "mm/dd/yyyy") & "# ORDER BY D DESC;
    renvoie tous les enregistrement du produit pour lesquels D <= variable date, dans l'ordre décroissant des dates.
    Elle peut être utilisée dans un formulaire.
    En VBA, on peut accéder à n'importe quel champ du premier enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = DLookUp("NomDeChamp","SELECT ...;")
    En espérant que cela t'aide,

    Bon dimanche.

    PGZ

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par pgz Voir le message
    En VBA, on peut accéder à n'importe quel champ du premier enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = DLookUp("NomDeChamp","SELECT ...;")
    En espérant que cela t'aide,
    Petite erreur, le deuxième critère de la fonction DLookup n'admet pas d'instruction SQL comme "Select ...", il faut le nom d'une table ou d'une requête de la base.

    Pour plus d'informations sur la fonction DLookup : ici.

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Hello

    Petite erreur, le deuxième critère de la fonction DLookup n'admet pas d'instruction SQL comme "Select ...", il faut le nom d'une table ou d'une requête de la base.
    You're right, Starec! Je suis allé un peu trop vite...

    PGZ

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut
    Merci pour vos réponses, je comprends le concept que vous m'exposez mais un doute subsiste.

    Puisque qu'on ne peut pas définir une requête avec SQLStr = "SELECT..." au sein de DLookUp, j'ai procédé en deux temps en :

    - créant une requête New_Query avec SQLStr (qui inclut les paramètres de ma fonction)
    - évaluant DLookUp avec les paramètres qui m'intéressent, dont New_Query

    Vu que New_Query a des paramètres qui dépendent uniquement de la fonction, je supprime cette requête devenue inutile avec un DeleteObject avant de fermer ma fonction. Est-ce habituel en Access/VBA ?

Discussions similaires

  1. Affichage et parcours d'un RecordSet
    Par Konami15 dans le forum ASP
    Réponses: 10
    Dernier message: 26/09/2008, 15h49
  2. Réponses: 4
    Dernier message: 22/11/2006, 16h48
  3. Sortir d'une boucle de parcour d'un Recordset
    Par Mariboo dans le forum IHM
    Réponses: 2
    Dernier message: 12/06/2006, 18h07
  4. Optimiser un calcul avec parcours de recordset
    Par hugo69 dans le forum Access
    Réponses: 28
    Dernier message: 12/06/2006, 10h37
  5. Probleme de recordset parcourant excel
    Par ironik dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/04/2006, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo