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'une table à partir d'un formulaire en VBA


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 38
    Points
    38
    Par défaut Mise à jour d'une table à partir d'un formulaire en VBA
    Bonjour, j'essaie de développer une application type "finance personnelle" pour mon propre usage avec Access 2007 / VBA et j'ai le pb suivant :

    J'ai une table "entrée" sous-jacente d'un formulaire pour rentrer des dépenses, et une table "livre" en partie double pour le grand livre; sachant que chaque enregistrement dans la table "entrée" doir génèrer 2 enregistrements (1 débit + 1 crédit) dans la table "livre", j'ai fait une procédure VBA pour ça, et cette procédure fonctionne, mais avec un défaut :
    les enregistrements créés reprennent les données du dernier enregistrement de la table "entrée" AVANT que le formulaire ait été ouvert (en d'autres termes les données que je rentre dans le formulaire ne sont pas mises à jour dans la table "entrée"

    J'ai essayé Me.Requery dans le code du bouton de validation (ça n'améliore rien) et aussi rs1.requery dans le code de la procédure appelée (ça génère une erreur)

    Merci de m'aider

    Voici le code:
    Bouton de validation de l'entrée
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
    DoCmd.GoToRecord , , acNewRec
    Module1.transac_input

    Procédure appelée (transac_input)
    ...
    Set rs1 = db.OpenRecordset("t_inp1") 'table "entrée"
    Set rs2 = db.OpenRecordset("t_tran") 'table "grand livre"
    ...
    rs1.MoveLast 'hélas va au dernier enregistrement AVANT saisie

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut
    Peux tu préciser ce que vaut "t_inp1", enfin avant de faire les db.OpenRecordset tu fais une requete SQL ?

    Et pourquoi rs1.MoveLast et non pas rs1.MoveNext ?

    Enfin, je ne suis pas forcément "super douée" en ACCESS mais si jamais je peux t'aider...

    Secco

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    En fait depuis hier j'ai trouvé : au lieu de recopier en VBA les données de la table sous-jacente (qui ne se mets pas à jour, ou du moins n'ais-je pas trouvé la solution), je recopie direct les valeurs des contrôles du formulaires; ça peut sembler évident puisque les formulaires sont justement faits pour mettre des données dans des tables (en général sans l'aide de VBA), mais là j'avais pompé bêtement du code qui recopiait des enregistrements d'une table sur l'autre.
    Merci quand même

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2008, 10h56
  2. Réponses: 7
    Dernier message: 16/01/2007, 15h54
  3. Mise à jour D'une table à partir d'une autre
    Par Greg84 dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 16h09
  4. Mise à jour d'une table à partir d'un sous formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 20h07
  5. Réponses: 5
    Dernier message: 06/01/2005, 12h07

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