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

IHM Discussion :

[Macro] problème de macro


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut [Macro] problème de macro
    bonjour a tous !
    j'ai un petit probleme

    Dans mon formulaire sur ACCESS2000, j'ai un champ (rpdt1) ou je tape un mot pour la recherche d'une ligne de produit
    elle doit filtrer sur 4 autre champs : produit1, produit2 et produit3 et produit4

    je me sui dit, super , je vais faire une macro pour cette recherche:

    DansChaîne([PRODUIT1];[Formulaires]![E_DocTechnique]![rpdt1]) Ou DansChaîne([PRODUIT2];[Formulaires]![E_DocTechnique]![rpdt1]) Ou DansChaîne([PRODUIT3];[Formulaires]![E_DocTechnique]![rpdt1])

    Mais quand je met le code pour le produit4
    Ou DansChaîne([PRODUIT4];[Formulaires]![E_DocTechnique]![rpdt1])
    une erreur me signal : la chaine retourner par le générateur est trop longue, le résultat sera tronqué 1

    je voudrai savoir si je dois abandonner la macro et faire une procédure en code
    seulement je n'y arrive pas. il me semble qu'il faut utiliser : acApplyFilter mais je suis pas sur

    si quelqu'un peut maider ^^ c'est pas de refus

    ps: j'espère que mon explication est clair sinon désolé

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    toujour mon pti probleme de recherche

    avec mon formulaire qui affiche ma table, je souhaiterai faire une rechreche avec rpdt1 sur le champs produit1 permettant d'afficher le résultat

    alors j'ai fait un truc de ce genre mais sa marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '---------recherche sur rpdt1----------------
    If Me.rpdt1 <> "" Then
        critères = "([PRODUIT1]) Like '*" & Me.rpdt1 & "*')"
    End If
     
    requete = "select * from [DocTechnique]"
    If critère <> "" Then requete = requete & "where " & critere
     
    Me.Form.RecordSource = requete
    Me.Caption = requete
    j'espere avoir des réponse merci

  3. #3
    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,
    Citation Envoyé par pouii
    Dans mon formulaire sur ACCESS2000, j'ai un champ (rpdt1) ou je tape un mot pour la recherche d'une ligne de produit
    elle doit filtrer sur 4 autre champs : produit1, produit2 et produit3 et produit4

    je me sui dit, super , je vais faire une macro pour cette recherche:

    DansChaîne([PRODUIT1];[Formulaires]![E_DocTechnique]![rpdt1]) Ou DansChaîne([PRODUIT2];[Formulaires]![E_DocTechnique]![rpdt1]) Ou DansChaîne([PRODUIT3];[Formulaires]![E_DocTechnique]![rpdt1])

    Mais quand je met le code pour le produit4
    Ou DansChaîne([PRODUIT4];[Formulaires]![E_DocTechnique]![rpdt1])
    une erreur me signal : la chaine retourner par le générateur est trop longue, le résultat sera tronqué
    Les macros souffrent de nombreuses limitations, et en particulier les arguments d'une action ne peuvent excéder 255 caractères.
    Or ton expression "à rallonge" doit sûrement dépasser cette limite.

    Maintenant, je ne pense pas que la fonction DansChaîne soit appropriée ici.

    Dans une macro, tu pourrais utiliser l'action AppliquerFiltre en spécifiant l'argument Where.
    Mais l'expression risque quand même de dépasser la limite de 255 caractères
    Aussi, je te propose de concaténer les 4 champs et de vérifier que la ligne de produit y figure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ([PRODUIT1] & [PRODUIT2] & [PRODUIT3] & [PRODUIT4]) Comme "*" & [Formulaires]![E_DocTechnique]![rpdt1] & "*"

Discussions similaires

  1. Problème de macro
    Par Zorko dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2007, 18h15
  2. [VBA]Problème de macro et de dimension.
    Par Invité dans le forum Général VBA
    Réponses: 2
    Dernier message: 26/04/2007, 11h50
  3. [Macro]Problème d'importation .CSV avec macro
    Par Eric Harvey dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/04/2007, 17h04
  4. Problème sur macro (2 exécutions de code)
    Par Tsuna78 dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2007, 20h24
  5. [VBA-E] Problème activation macro
    Par kamshaa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2007, 17h02

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