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 :

[A-03] Réinitialiser un champ après l'utilisation du vbNullString ?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Par défaut [A-03] Réinitialiser un champ après l'utilisation du vbNullString ?
    Bonjour,

    Je travaille sur access 2003.
    Je cherche une fonction me permettant de "réinitialiser" (je ne suis pas sûre que ce soit le bon concept) mon formulaire, ou l'un des champs de mon formulaire, après avoir utilisé la fonction MonChamp.RowSource = vbNullString.

    Je m'explique :

    1°) J'ai disposé un champ Ab dans un formulaire, qui va chercher sa valeur dans une table A en fonction d'un lien avec une liste globale, ListeA :

    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
    Private Sub ListeA_Click()
     
        Dim connec As New Connection
        Dim Rst As New Recordset
        Dim str_sql As String
     
        str_sql = "SELECT [A].* " _
                & "FROM [A] " _
                & "WHERE ((([A].Aa)=" & ListeA.Value & "));"
     
        Set connec = CurrentProject.Connection
        Rst.Open str_sql, connec, adOpenDynamic, adLockOptimistic
     
        Ab.Value = Rst!Ab
     
        Rst.Close
        connec.Close
     
    End Sub
    2°) Ce champ Ab est une zone de liste déroulante dont la source est une requête complexe.

    J'ai cependant noté qu'en l'insérant en source de mon champ, lorsque je change mon choix via ma ListeA, ma valeur ne s'inscrit plus (et provoque un débogage : "valeur incorrecte pour ce champ").

    J'ai donc créée ma requête en procédure évènementielle sur Ab_GotFocus :

    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
    Private Sub Ab_GotFocus()
     
        Dim connec As New Connection
        Dim Rst As New Recordset
        Dim str_sql As String
     
        str_sql = "SELECT..." 
     
        Set connec = CurrentProject.Connection
        Rst.Open str_sql, connec, adOpenDynamic, adLockOptimistic
     
        Ab.RowSource = str_sql
        Ab.Requery
     
        Rst.Close
        connec.Close
    End Sub
    3°) Puis la vide sur ListeA_Click avec la fonction vbNullString :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Ab.RowSource = vbNullString
        Ab.Requery
    4°) Là se situe le problème.
    Sur ListeA_Click, cela continue de déboguer.
    Mais si je ferme mon formulaire et le rouvre, cela fonctionne de nouveau.

    D'où l'idée de trouver une fonction qui réinitialise mon champ Ab.

    Une petite idée ?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    Bonjour,

    Il est possible qu'il y ai besoin de faire un requery après avoir fait le vbNullString dans le rowsource de l'objet afin de le mettre à jour.

    syntaxe :

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Par défaut
    Bonjour,

    Merci pour l'idée.
    En fait, le obj.Requery est déjà dans mon code (la dernière ligne), mais ne suffit pas.

    Mais, pour y avoir regardé à nouveau ce matin, je me demande si le problème ne vient pas de l'utilisation du vbNullString, que je ne maîtrise pas forcément.

    Après tout mon bazar, dans ma ligne de code le Ab.Value devrait renvoyer Or, là, il me renvoie la valeur C'est pour ça que ça beugue à chaque fois...

    Je vais essayer de creuser, mais je suis preneuse de toute idée !!!
    Merci d'avance

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Par défaut
    Ps. : le fait qu'en refermant mon formulaire et en le rouvrant ensuite est une piste stupide.
    De fait, quand je rouvre mon formulaire, je n'ai pas encore été sur mon champ Ab, donc forcément, il n'y a pas de problème

  5. #5
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    voir la fonction NZ

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Par défaut
    Merci.
    Je regarde ça dès que ;-)

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

Discussions similaires

  1. comment réinitialiser les champs apres submit
    Par ouldfella dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2012, 10h50
  2. Réinitialisation de champs de form après vérification onsubmit
    Par leclone dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/04/2008, 10h39
  3. "sauter" un champ quand on utilise la tabulation
    Par jisse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/09/2005, 01h42
  4. valeur d'un champ pour l'utiliser dans une requete
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 08/04/2005, 16h58
  5. SOS recup champ après préocédure stockée
    Par seb92 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/11/2004, 07h47

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