none
Access 2000 : Erreur 2185 inexplicable RRS feed

  • Question

  • Bonjour, 

    Je rencontre un problème avec Access 2000 (et j'ai vu d'autres utilisateurs le rencontrer avec la version 2007).

    J'ai :

    Un formulaire, un champ texte, un bouton de commande et une zone de liste.

    Mon champ texte me sert à renseigner des valeurs, sur lesquelles je vais filtrer ma zone de liste (en cliquant sur le bouton de commande)
    Lorsque ce filtre renvoie des valeurs, aucun soucis.

    S'il n'y en a pas...c'est le drame (ou plutôt l'erreur 2185  disant :  "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é.")

    Enfin, ca va l'être...

    Je m'explique. Si aucun enregistrement ne correspond au filtre, sur la prochaine touche activée, je me prends l'erreur.

    L'erreur apparait au moment de l'évènement KeyDown (utilisé pour limiter la saisie dans le champ)


    Mon code est

    [code]

    If Len(Nz(Me.txtCritAncienContrat.Text, "")) > 9 And KeyCode <> vbKeyBack And KeyCode <> vbKeyLeft And KeyCode <> vbKeyUp And KeyCode <> vbKeyDown And KeyCode <> vbKeyRight And KeyCode <> vbKeyDelete Then KeyCode = 0
     

    [/code]

    De plus, après avoir "validé" le message d'erreur, mon champ contient bien ce qu'il faut...

    Comment traiter cette erreur ? Le champ est pourtant bien activé, et il a même le focus, donc je ne la comprend pas.

     

    Si quelqu'un a une idée...je suis preneur ! 

    J'indique également un lien vers un forum, contenant un sujet relativement bien fourni : http://www.developpez.net/forums/d905520/logiciels/microsoft-office/access/ihm/erreur-2185-creation-filtre/#post5428815

     

    Si cela peut aider....

    Merci :)

    mercredi 25 août 2010 09:55

Toutes les réponses

  • Bonjour,

    En fait il y a 2 cas...

    Si le textbox a le focus, on peut utiliser la propriété .text ou mieux .value mais dans le cas contraire, il faut le considérer comme un champ de données... Soit Me!NomDuChamp[Control]

    De plus d'après ce que je lis, le mieux est d'utiliser l'événement KeyPress()

    Private Sub txtCritAncienContrat_KeyPress(KeyAscii As Integer)
      Select Case KeyAscii
        'Que des lettres ou des chiffres
        Case 8, 9, 48 To 57, 65 To 90, 97 To 122
        Case Else
          KeyAscii = 0
      End Select
    End Sub
    



    et d'y associer un masque de saisie avec la valeur :

    aaaaaaaaa

    pour 9 caractères maximum

     

     

     


    Argy
    mercredi 1 septembre 2010 09:52
    Modérateur