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 table via formulaire [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut Modification table via formulaire
    salut le phorum

    j'ai créé un formulaire qui me permet de supprimer ou modifier l'enregistrement d'une table
    ce formulaire me liste les enregistrements de la table, suivant le choix je supprime ou appel un second formulaire pour modifier des informations
    à la validation des modification, j'ai ajouté des champs pour voir qui et quand a été modifié la table
    mon problème c'est que quelquesoit l'enregistrement choisi, les informations concernant le nom et la date de modification se mettent sur la première ligne de ma table ?
    ci dessous le code pour l'appel du formulaire avec la liste déroulante

    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
     
    Private Sub Modification_Click()
    On Error GoTo Err_Modification_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "F004_MODIFICATION" 
    stLinkCriteria =" & "'" & Me![LstCode] & "'"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        Forms!F004_MODIFICATION!TThème.SetFocus
        Forms!F004_MODIFICATION!LstThemes.Visible = False  
    Exit_Modification_Click:
        Exit Sub
    Err_Modification_Click:
        MsgBox Err.Description
        Resume Exit_Modification_Click 
    End Sub
    je choisi donc le numéro à modifier et valide avec 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
    19
    20
    21
    22
    23
    Private Sub CValidation_Click()
    Dim DB As DAO.Database
    Dim RS As DAO.Recordset
    MyDate = Date
    Set DB = CurrentDb
    Set RS = DB.OpenRecordset("T002_SAISIE_QUALIF", dbOpenTable)
    With RS
    TDateModif = Date
        DoCmd.RunCommand acCmdSaveRecord
        .Edit
        ![Modifié par] = usrname
       ![Date Modif] = TDateModif
       ![Semaine Modif] = Sem(Forms!F004_MODIFICATION!TDateModif)
       ![Mois Mofif] = Format(Forms!F004_MODIFICATION!TDateModif, "mmmm")
       ![Année Modif] = Year(Forms!F004_MODIFICATION!TDateModif)
       ![Heure Modif] = Time    
        .Update
    End With
    RS.Close
    Set RS = Nothing
    Set DB = Nothing
        DoCmd.Close
    End Sub
    les lignes en rouge de code ci dessous se mette à jour systèmatiquement sur la première ligne quelquesoit le choix de ma liste
    quelqu'un a t il une idée de la raison ?

    merci d'avance

    munity

  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,

    Quand on ouvre un recordset il se place, par défaut, sur le premier enregistrement.

    pour se déplacer dans recordset il faut utiliser les méthodes Move, MoveNext, Moveprevious, MoveFirst et MoveLast de cet objet.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    je me disais bien que la solution passé par un movenext
    débutant dans le développement vba access
    et sans vouloir abuser
    pourrais tu me dire à quel endroit du code je dois mettre le move afin de cibler l'enregistrement choisi

    munity

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    je pense avoir trouvé
    quelqu'un pourrais t il me confirmer le code ci dessous
    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
    20
    21
    22
    23
    24
    25
    Private Sub CValidation_Click()
    
    Dim DB As DAO.Database
    Dim RS As DAO.Recordset
    MyDate = Date
    Set DB = CurrentDb
    Set RS = DB.OpenRecordset("T002_SAISIE_QUALIF", dbOpenTable)
    With RS
    TDateModif = Date
        DoCmd.RunCommand acCmdSaveRecord
        .MoveNext
        .Edit
        ![Modifié par] = usrname
        ![Date Modif] = TDateModif
        ![Semaine Modif] = Sem(Forms!F004_MODIFICATION!TDateModif)
        ![Mois Mofif] = Format(Forms!F004_MODIFICATION!TDateModif, "mmmm")
        ![Année Modif] = Year(Forms!F004_MODIFICATION!TDateModif)
        ![Heure Modif] = Time
        .Update
    End With
    RS.Close
    Set RS = Nothing
    Set DB = Nothing
        DoCmd.Close
    End Sub

  5. #5
    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
    En fait ce code va modifier le second enregistrement,
    Je ne sais pas si il est vraiment utile de faire le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DoCmd.RunCommand acCmdSaveRecord
    Mais je n'ai pas une bonne vision de ce que tu souhaites faire exactement.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    Ben en fait
    par le formulaire avec la liste déroulante je choisi un enregistrement
    le formulaire s'affiche avec les informations précèdemment saisie
    je modifie certains champs suivant les besoins
    les modifications apportés à ces champs sont bien modifiés sur la ligne correspondante de la table : pas de problèmes
    par contre les informations que j'ajoute via vba sur le nom et la date de modification ne sont pas prise en comptes sur le bon enregistrement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ![Modifié par] = usrname
        ![Date Modif] = TDateModif
        ![Semaine Modif] = Sem(Forms!F004_MODIFICATION!TDateModif)
        ![Mois Mofif] = Format(Forms!F004_MODIFICATION!TDateModif, "mmmm")
        ![Année Modif] = Year(Forms!F004_MODIFICATION!TDateModif)
        ![Heure Modif] = Time
    et l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSaveRecord
    fait en sorte que je n'ai pas le message 'enregistrer les modification dans le formulaire'

    je n'arrive pas à lier le numéro d'enregistrement à mes champs qui ne sont pas dans le formulaire de modification (voir code ci dessus)

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

Discussions similaires

  1. Suppression de lignes dans table via formulaire
    Par Pithonnette dans le forum IHM
    Réponses: 5
    Dernier message: 25/06/2008, 09h30
  2. Mise a jour Tables via Formulaire
    Par farma dans le forum Modélisation
    Réponses: 4
    Dernier message: 24/07/2007, 17h49
  3. Réponses: 25
    Dernier message: 03/05/2007, 15h40
  4. Mise à jour de tables via formulaire
    Par sunwind dans le forum IHM
    Réponses: 4
    Dernier message: 09/12/2006, 20h09
  5. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 12h53

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