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 :

Modification enregistrement d'une table à partir d'un formulaire


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Août 2002
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Août 2002
    Messages : 40
    Points : 37
    Points
    37
    Par défaut Modification enregistrement d'une table à partir d'un formulaire
    Bonjour,

    J'ai une table "Membres" comprenant les données des membres. J'ai fait une requête qui me permet d'avoir l'enregistrement d'un membre à modifier. Mon formulaire de modification est basé sur cette requête, car après avoir saisir le nom du membre à modifier dans la requête, mon formulaire s'ouvre automatiquement avec les champs remplis de l'enregistrement à modifier.
    Jusque là tout va bien!

    Le problème c'est que j'ai fait un code vba basé sur l’événement "sur clic" du formulaire pour confirmer les informations modifiées et fermer le formulaire.
    Voici ce code:

    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
    Private Sub Commande23_Click()
    
    Dim t As Recordset
    Set db = CurrentDb
    Set t = db.OpenRecordset("Membres", DB_OPEN_DYNASET)
    t.AddNew
    
    t(NumMembre) = Me.NumMembre
    t(Nom) = Me.Nom
    t(Prenom) = Me.Prenom
    t(Rue) = Me.Rue
    t(NumeroRue) = Me.NumeroRue
    t(CodePostal) = Me.CodePostal
    t(Ville) = Me.Ville
    t(Pays) = Me.Pays
    t.Update
    
    End Sub
    Quand je clique sur "confirmer la modification" qui est un bouton de commande, il me donne les erreurs suivantes:

    Erreur d'exécution 13
    Incompatibilité de type


    Et quand je clique sur déboguage, je trouve qu'il a marqué en rouge dans le code ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set db = CurrentDb
    Set t = db.OpenRecordset("Membres", DB_OPEN_DYNASET)
    Quelqu'un peut m'aider à corriger ce code?
    Merci d'avance
    Antezi

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    Une autre manière de répondre aux besoins , passer par une requête d'action avec INSERT INTO


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim SQL as String 
    SQL = " INSERT INTO MEMBRES ( ... ) VALUES ( ... ) "
    DoCmd.SetWarnings = False
    DoCmd.RunSQL SQL 
    DoCmd.SetWarnings = True
    Après je suppose que vous avez déja vérifié que le numéro n'existe pas dans la table de départ ( pas de doublons ! )

    Cdt
    RM

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2013, 09h18
  2. Réponses: 1
    Dernier message: 26/08/2009, 08h41
  3. Réponses: 7
    Dernier message: 14/03/2009, 11h36
  4. [MySQL] Modification des enregistrements d'une table à partir d'un formulaire
    Par Maria1505 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 18/12/2006, 17h32
  5. Réponses: 39
    Dernier message: 28/07/2006, 14h22

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