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 :

Recherche multi-critères Erreur '2185' [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Recherche multi-critères Erreur '2185'
    Bonjour,
    Je dois faire un formulaire de Recherche Multi-critères. Pour cela j'ai suivi le tutoriel de Caféine.
    Cependant, j'ai une erreur qui apparait :

    Erreur d'exécution '2185' :
    Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.
    Et ceci quand je décoche la checkbox correspondant à une txtbox.
    Comme les données attendues dans les txtbox sont de types numériques (ici hmt et debit) , j'ai enlevé les ' '.
    Quelqu'un aurait-il une idée d'où cela peut venir ?

    Merci d'avance.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub RefreshQueryPompe()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT [Pompe Centrifuge].* FROM [Pompe Centrifuge] Where [Pompe Centrifuge]!idPompeCentrifuge <> 0"
     If Me.chkHmt Then
        SQL = SQL & " And [Pompe Centrifuge].hmt = " & Me.txtHmtPompe.Text & ""
     End If
     If Me.chkDebit Then
        SQL = SQL & " And [Pompe Centrifuge].debit = " & Me.txtDebitPompe.Text & ""
     End If
     If Me.chkFluide Then
        SQL = SQL & " And [Pompe Centrifuge].fluide = '" & Me.cboFluidePompe & "' "
     End If
     If Me.chkInstallation Then
        SQL = SQL & " And [Pompe Centrifuge].installation = '" & Me.cboInstallationPompe & "' "
     End If
     If Me.chkRoue Then
        SQL = SQL & " And [Pompe Centrifuge].roue = '" & Me.cboRouePompe & "' "
     End If
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     MsgBox (SQL)
     Me.lblStatsPompe.Caption = DCount("*", "Pompe Centrifuge", SQLWhere) & " / " & DCount("*", "Pompe Centrifuge")
     Me.lstResultPompe.RowSource = SQL
     Me.lstResultPompe.Requery

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Points : 54
    Points
    54
    Par défaut
    Sais-tu sur lequel des contrôles il plante ? Si, oui peut-être que le fait de donner le focus à ce contrôle avant d'y faire référence résoudra ton soucis.

    tu peux faire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToControl "NomControle"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[NomControle].SetFocus

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse,

    Je crois qu'il plante sur les contrôles txtbox (ici hmt et debit).
    J'ai essayé ta technique et l'erreur à changer :
    Erreur d'exécution '2108'
    Vous devez enregistrer le champ avant d'exécuter l'action AtteindreContrôle, la méthode GoToControl ou la méthode SetFocus.
    Et je comprends pas ce que je dois "enregistrer".

    Ps: j'ai utilisé SetFocus

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Points : 54
    Points
    54
    Par défaut
    Après relecture de ton code, il me semble que [Pompe Centrifuge] est une table, donc l'accès aux données devrait de faire par "!" et non "."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    je comprends pas ce que je dois "enregistrer".
    si les données de ton formulaire sont directement liés aux enregistrements de ta table alors tu dois faire un Me.Requery avant pour enregistrer les modifications des champs,

    essaye ça, ajoute "Me.Requery" au début de ta procédure

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci de ton aide, j'ai réussi à trouver une solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Erreur d'exécution 3075 recherche multi-critère Cafeine
    Par higins dans le forum IHM
    Réponses: 8
    Dernier message: 15/12/2010, 12h45
  2. Erreur code recherche multi-critères
    Par bétécé dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 23/11/2006, 11h14
  3. Réponses: 6
    Dernier message: 28/06/2006, 15h01
  4. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00
  5. Procédure stockée: recherche multi-critères
    Par biroule dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 01/09/2004, 16h02

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