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 :

Acceder en VBA Excel à une requete avec fonction déclarée dans Access


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut Acceder en VBA Excel à une requete avec fonction déclarée dans Access
    Bonjour

    j'ai résolu mes autres soucis reste plus que celui la (pour l'instant)
    J'ai donc une requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PARAMETERS param Byte;
    SELECT Table1.Nom, Table1.LSP
    FROM Table1
    GROUP BY Table1.Nom, Table1.LSP
    HAVING (((c_and([table1].[LSP],[param]))=True));
    j'aimerais y accéder depuis VBA Excel en DAO ou ADO
    j'ai tenté en DAO mais cela ne fonctionne pas... Il me dit que la fonction c_and n'existe pas.
    je vous mets mes fichiers de tests il s'agit du bouton req2 (le chemin est déclaré en haut du code)
    Je ne suis pas sur que l'on puisse le faire ....

  2. #2
    Membre régulier
    Avatar de wape
    Profil pro
    Inscrit en
    Février 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 90
    Points : 123
    Points
    123
    Par défaut
    Bonsoir,

    Ci-joint une solution qui semble fonctionner...
    Les modifications effectuées sont commentées dans le code.

    wape
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut
    merci pour ta réponse
    mais le traitement devient drolement long et je perds donc tout interet de ma fonction and ...

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Depuis Jet 4 (apparu avec Access 2000), le SQL offre les opérateurs binaires BAND, BOR (et les autres ?).
    Mais ils ne sont utilisables qu'avec ADO (ni DAO, ni mode graphique dans Access).

    Au lieu d'appeler la requête dans le fichier MDB, tu pourrais construire cette requête dans Excel (en utilisant l'opérateur BAND) et l'exécuter avec ADO.

    Ainsi, tu n'aurais plus besoin d'appeler la fonction utilisateur dans Access.
    _

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut
    merci pour cette nouvelle approche

    j'ai testé et c'est ok :
    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 ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim cmd As ADODB.Command
     
    Set db = New ADODB.Connection
    With db
      .provider = "Microsoft.JET.OLEDB.4.0"
      .ConnectionString = ActiveWorkbook.Path + "\" + nom_base
      .ConnectionTimeout = 6
      .CommandTimeout = 60
      .Open
    End With
     
        Set cmd = New ADODB.Command
        With cmd
                .ActiveConnection = db
                pp = InputBox("Votre clé :", , 1)
                .CommandText = "select nom,LSP from table1 where (table1.LSP BAND " & pp & ")=table1.LSP;"  'nom de la requete
                Set rst = .Execute

    Bilan

    ok pour pour ma fonction qui est en fait avantageusement remplacer par BAND
    PAr contre appelable unquiment en ADO et non en DAO
    Et visiblement pas possible d'appeler une fonction déclarée VBA access en VBA excel ..

    j'ai mis en pièce jointe le code modifié

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut
    oups
    j'ai oublié
    ou puis-je trouver de la doc sur BAND ou BOR

    merci

Discussions similaires

  1. Problème sur une requete avec fonction
    Par amelyfred dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/07/2015, 08h12
  2. Optimisation d'une requete avec fonction Max
    Par ghargamaster dans le forum Langage SQL
    Réponses: 13
    Dernier message: 28/02/2011, 09h25
  3. [AC-2007] lancer une requete avec 2 parametres dans Access 2007 avec VBA
    Par dimis dans le forum VBA Access
    Réponses: 8
    Dernier message: 29/07/2009, 14h45
  4. Problème export excel sur une requete avec critère
    Par eddyG dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 20/09/2006, 11h46
  5. VBA requete avec fonction sous access
    Par vanima dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/06/2006, 15h18

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