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

Requêtes et SQL. Discussion :

Effectuer une opération sur le résultat d'une requête


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut Effectuer une opération sur le résultat d'une requête
    Bonjour,

    Est-il possible d'effectuer une opération sur le résultat d'une requête ?
    Dans un formulaire j'utilise "DoCmd.OpenQuery" pour comparer les informations de deux tables avec une structure et champs identiques. J'aimerais pouvoir exécuter une opération A s'il a un résultat positif et sinon une opération B. J'utilise un IF...Else... End If pour ce travail. Mon problème est que je ne sais pas comme extraire un résultat quelconque de ma requête avec lequel pourrait baser le choix du If. Les seuls résultats possibles de ma requête est un résultat (match) ou Null (unmatch).

    Merci

    egg3774

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Quand j'ai un cas comme cela voilà ce que je fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    dim db as dao.database:set db=currentdb
    dim r as dao.recordset:set db.openrecordset("NomDeTaRequete")
    dim estTrouve as boolean
     
    if r.recordcount=0 then
         estTrouve=false
      else
         estTrouve=true
    end if
     
    r.close:set r=nothing
    db.close:set db=nothing
     
    if estTrouve then
        'Faire ce qu'il faut
      else
        'Faire autre chose
    end if
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Quand j'ai un cas comme cela voilà ce que je fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    dim db as dao.database:set db=currentdb
    dim r as dao.recordset:set db.openrecordset("NomDeTaRequete")
    dim estTrouve as boolean
     
    if r.recordcount=0 then
         estTrouve=false
      else
         estTrouve=true
    end if
     
    r.close:set r=nothing
    db.close:set db=nothing
     
    if estTrouve then
        'Faire ce qu'il faut
      else
        'Faire autre chose
    end if
    Un gros merci.

    Mais je reçois un message de "Compile error: Expected:=" au niveau de la deuxième ligne "dim r as dao.recordset:set db.openrecordset(qry_user)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    je crois que j'ai trouver la source de l'erreur. Il manquait ceci:

    Avant:
    dim r as dao.recordset:set db.openrecordset("NomDeTaRequete")

    Après:
    dim r as dao.recordset:set r = db.openrecordset("NomDeTaRequete")

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Merci à egg3774 pour la correction.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Wow ... merci à marot_r ton le code. Ca fonctionne à merveille !

    egg3774

Discussions similaires

  1. [AC-2003] Résultat d'une opération dans un champ d'une table
    Par nomade333 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/02/2012, 09h16
  2. [VxiR2] Faire une requete sur les résultats d'une première requete
    Par amy0o0 dans le forum Deski
    Réponses: 2
    Dernier message: 01/02/2011, 21h39
  3. Réponses: 2
    Dernier message: 07/06/2010, 14h19
  4. Réponses: 2
    Dernier message: 14/05/2007, 08h32
  5. effectuer une opération sur chaque ligne d'un select
    Par Mindiell dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/12/2006, 12h23

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