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 :

Mise à jour d'un recordset depuis un formulaire


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 165
    Points
    165
    Par défaut Mise à jour d'un recordset depuis un formulaire
    Bonjour à tous.

    Le problème est simple : Sur un formulaire et je voudrais que lorsque je clique dessus un champ de l'enregistrement en cours prenne la valeur TRUE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub btn_Clore_Click()
        With Me.Recordset
            .Edit
            !Est_Clos = True
            .Update
        End With
    End Sub
    L'ennui c'est : Quand j'arrive au niveau de ".Edit" j'ai le message d'erreur "Aucun enregistrement en cours. (Erreur 3021)".

    Pourtant, je vois bien que l'enregistrement n'est pas nul puisque autres les valeurs s'affichent dans les autres champs du formulaire.

    Cependant, lorsque je regarde les espions de "Me.Recordset" en mode debug je vois la bonne table dans les sources mais la valeur des champs affiche toujours :
    "<Aucun enregistrement en cours.>"

    Je ne comprends pas. Merci de votre aide.

    Cordialement.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Sauf erreur, le recordset est déjà édité par nature, il devrait donc suffire de taper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Est_Clos = True
    refresh
    Autre explication possible : le recordset est issu d'une requete complexe non éditable... Auquel cas aucun champ ne doit être modifiable dans la fenêtre !
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 165
    Points
    165
    Par défaut
    Bonjour à tous.

    Merci nico pour ta réponse.

    En l'occurrence, je n'ai pas utilisé de requête. Le sous-formulaire est sourcé directement sur une table.
    Bien sûr cette dernière est liée par jointure à la table du formulaire principal.

    Par contre, il est nécessaire d'éditer le recordset avant de la modifier avec les instructions : ".Addnew" ou ".Edit" .
    Mais les 2 notations fonctionnent : "Est_Clos" et "!Est_Clos" sont équivalents.

    Cordialement

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Citation Envoyé par JOHN14 Voir le message
    Par contre, il est nécessaire d'éditer le recordset avant de la modifier avec les instructions : ".Addnew" ou ".Edit" .
    Addnew n'édite pas mais crée une nouvelle ligne
    Edit n'a pas de sens sur le recordset en cours d'édition

    btn_truc_click semble indiquer qu'il s'agit d'un bouton
    Généralement les boutons sont dans le formulaire principal
    Si c'est le cas la procédure doit appeler le recordset du sous-formulaire pour que cela fonctionne
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 165
    Points
    165
    Par défaut
    Ok.
    Addnew n'édite pas mais crée une nouvelle ligne
    Edit n'a pas de sens sur le recordset en cours d'édition
    Mais, il se trouve que cela ne fonctionnait pas sans ?!? Maintenant je l'ai retirer et cela fonctionne ?!?

    Pour information, "btn_Clore" est un bouton bien sûr. Il est sur le sous-formulaire dont je veux modifier la table.

    Décidément, ce n'est pas très clair pour moi.

    Merci.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/02/2008, 11h35
  2. Réponses: 3
    Dernier message: 02/01/2006, 11h53
  3. [vb][ado][mysql] mise à jour d'un recordset
    Par hi_vivie dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/12/2005, 16h34
  4. probleme de mise a jour de la BD depuis un formulaire
    Par sebduduf dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/11/2005, 18h07
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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