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

Access Discussion :

Requete Action sur un recordset.


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Points : 85
    Points
    85
    Par défaut Requete Action sur un recordset.
    Bonjour,

    Je travaille sur un recordset ADO. Je voudrais pouvoir faire des requêtes Action sur ce recordset en utilisant directement le SQL et non pas les requêtes correspondantes de l'objet Recordset.

    Par exemple, au lieu de faire ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      'Passer le recordset en mode édition
      Rst_General.Edit
     
      'Mettre à jour les champs qui doivent l'être
     
      Rst_General.Fields("Comm").Value = Txt_Comm.Value
      Rst_General.Fields("Ctr").Value = Chk_Ctr.Value
      Rst_General.Fields("Rcl").Value = Chk_Rcl.Value
     
    'Mise à Jour
      Rst_General.Update
    j'aimerais ecrire directement la requête SQL à la main, ce qui me permet de mieux contrôler.

    Avez vous une idée de comment faire??

    Merci.

    Anikeh!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    A ma connaissance il n'est pas possible d'utiliser un recordset dans une requete (selection comme action)

    A+

  3. #3
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    je ne suis pas sûre avoir bien compris ta requête. mais c'est soit tu travailles avec un recordset ADO soit tu travailles avec une requête SQL (en utilisation pour cette derniere par exemple la méthode RunSQL).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Points : 85
    Points
    85
    Par défaut
    Je pose la question parce que j'ai lu dans le tutoriel de JM Rabilloud qu'il valait mieux préférer l'utilisation du SQL par rapport aux fonctionnalités du recordset. Je suis d'accord avec cette affirmation.

    Le seul problème, c'est qu'il n'existe pas de cas concret où il montre comment faire, particulierement en ce qui concerne les requêtes Action.

    Le seul moyen que je vois c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Rst_General.Fields("Comm").Value = Txt_Comm.Value
    Et ca ne correspond pas à ce que je voulais.

    J'espère que ma requête est claire.

    Anikeh!

  5. #5
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    Citation Envoyé par anikeh
    Le seul moyen que je vois c'est

    Code:

    Rst_General.Fields("Comm").Value = Txt_Comm.Value
    et ben dans ce cas tu peux utiliser à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.RunSQL "UPDATE tatable SET tatable.com = '"& Txt_Comm.Value &"' "
    et mettre une condition si nécessaire (donc la clause WHERE si tu modifies une ligne particulière).

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Petogaz
    salut,

    je ne suis pas sûre avoir bien compris ta requête. mais c'est soit tu travailles avec un recordset ADO soit tu travailles avec une requête SQL (en utilisation pour cette derniere par exemple la méthode RunSQL).
    Je pensais utiliser un recordset car je sais qu'ainsi je peux poser des verrous sur les enregistrements au moment des modifications, ce qui me permettrait de gérer les accès concurrents.
    Les transactions ne sont possibles sur les tables attachées selon l'aide ACCESS.

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Si tu désires rester avec ADO, interresse toi aux objets Command comme l'indique l'auteur du cours JM Rabilloud. Ou bien encore la méthode Execute de l'objet Connection

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Points : 85
    Points
    85
    Par défaut
    ok tofalu, c'est vers cette solution que je me dirigeais.
    je fais ca demain et je vous tiens au courant.

    Anikeh!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Tofalu
    Si tu désires rester avec ADO, interresse toi aux objets Command comme l'indique l'auteur du cours JM Rabilloud. Ou bien encore la méthode Execute de l'objet Connection
    Merci Tofalu. Mais quelques précisions :

    L'objet Command est utilisé pour exécuter les requêtes Action sur la source des données. Or, c'est dans un recordset que je definis le type verrou ( optimiste, pessimiste) que je veux mettre en place.
    En executant mes requetes Action au niveau de la source de données, je contourne les verrous. Or ce qui m'interesse, c'est d'utiliser ces verrous.

    Je crois que cela est possible qd on utilise les methode Edit, et Update du recordset. Mais, je tiens à écrire mes requêtes en SQL et ne pas utiliser ces méthodes du recordset, tout en ayant la possibilité de faire jouer les verrous déclarés lors de methode OPEN du recordset.

    Est ce possible???

Discussions similaires

  1. une requete SQL sur un recordSet
    Par skillipo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/11/2007, 13h15
  2. VB5 : Requete SQL sur un recordset
    Par jaymzwise dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 10/09/2007, 15h04
  3. Requete sur un recordset
    Par eristoff_night dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/06/2007, 09h00
  4. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11
  5. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01

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