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 :

Comment modifier un enregistrement dans une table ?


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Comment modifier un enregistrement dans une table ?
    Bonjour,

    J'ai une table avec 4 champs, a,b,c et d. J'ai crée un formulaire avec 4 zones de texte, qd l'utilisateur renseigne la première zone de texte qui correspond à mon champ a, les 3 autres zones sont renseignées par code VBA avec les valeurs correspondantes à b, c et d en fonction de la valeur de a choisie.


    Maintenant je voudrais que qd l'utilisateur modifie les valeurs de b, c et d pouvoir enregistrer les nouvelles valeurs de b, c et d en fonction de a. a est ma clé primaire et il ne peut y avoir de doublons et justement access me marque un souci de doublon. Je voudrais en fait modifier l'enregistrement de départ

    comment peut on faire par code svp ?

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    tu peux par exemple dans l'évènement "Avant MAJ" du contrôle pour le champ a, vérifier que la valeur n'existe pas déjà dans la table.
    Code vb : 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
    Private Sub a_BeforeUpdate(Cancel As Integer)
    Dim strA As String, Cnt As Long, Rps As Integer
     
    strA = Nz(Me.a)
    If strA <> "" Then
       Cnt = DCount("*", "NomDeLaTable", "a='" & strA & "'")
       If Cnt > 0 Then
          Rps = MsgBox("Une entrée existe déjà pour " & strA & vbCrLf & _
                vbCrLf & _
                "<Oui>       : Modifier entrée existante" & vbCrLf & _
                "<Non>       : Modifier saisie en cours" & vbCrLf & _
                "<Annuler> : Abandonner saisie en cours", vbYesNoCancel, _
                "Modifier l'entrée existante  ?")
          Select Case Rps
            Case vbYes
                Me.Undo
                DoCmd.FindRecord strA, acEntire, , acDown, , acCurrent, True
                Cancel = True
            Case vbNo
                Cancel = True
            Case vbCancel
                Me.Undo
                Cancel = True
          End Select
       End If
    End If
    End Sub
    Dans le code ci-dessus on suppose que le contrôle associé au champ a s'appelle lui aussi a, et qu'il est de type texte.

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci bcp de ta reponse, par contre VB me marque une erreur, "erreur d'éxécution 2137 : Vous ne pouvez pas recherchez ou remplacer pour l'instant".

    Comme je l'ai codé actuellement, des que l'utilisateur rentre une valeur dans le champ a qui correspond à un enregistrement existant les valeurs des champs b, c et d sont raffraichis. Je voudrais rajouter 2 boutons : 1 bouton modifier enregistrement et un bouton ajouter enregistrement dans le cas ou la valeur de a ne correspond pas à un enregistrement existant. Et la je bloque pour le bouton modifier enregistrement...

    Merci votre aide

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Lorsqu'on modifie les données d'un formulaire, la source de données du formulaire est modifiée.

    Est-ce que ton formulaire est indépendant (pas de source de données) ?
    Ou bien tes contrôles ne sont pas liés aux champs de ta table ?

    A+

Discussions similaires

  1. Comment modifier un champ dans une Table importée?
    Par Peter89 dans le forum Access
    Réponses: 1
    Dernier message: 06/09/2012, 20h36
  2. Réponses: 4
    Dernier message: 02/05/2009, 17h56
  3. comment inserer un enregistrement dans une table?
    Par floran30 dans le forum VB 6 et antérieur
    Réponses: 74
    Dernier message: 16/06/2006, 19h56
  4. Réponses: 2
    Dernier message: 08/02/2006, 21h22
  5. Comment modifier un champ dans une table liée ?
    Par HookerSeven dans le forum Access
    Réponses: 11
    Dernier message: 05/02/2006, 23h50

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