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

Access Discussion :

Formulaire, création enregistrement VBA


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Formulaire, création enregistrement VBA
    Bonjour,

    J'ai un petit souci.

    Dans mon formulaire j'ai une Liste déroulante (élément essentiel du formulaire avec les articles en stock).

    Si l'utilisateur double-clique, cela démarre une fonction VBA qui ouvre des tables et fait ce qu'il faut faire (c'est de la gestion de stock)

    Mon problème : je veux créer l'enregistrement du formulaire (bon d'entrée) en VBA. J'ai vite trouvé comment tester que l'enregistrement existe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       'Création de l'enregistrement dans la base si ce n'est pas le cas
       If Me.NewRecord Then
       'AIDEZ MOI
       End If
    J'ai essayé les points suivants au lieu du "aidez moi" :
    - Me.Recordset.AddNew (puis update) : problème, cela ne reprend pas les valeurs par défaut présentes dans le formulaire
    - écrire une valeur de l'enregistrement (par exemple un zéro dans un champ valant zéro par défaut) : problème, l'enregistrement n'est pas mis à jour avant la fin de la fonction VBA (et les autres tables vérifient que ce bon d'entrée existe au moment des "update")

    une chtite aide ?

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,
    quand vous vez mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.recordset.addnew
    de quel recordset parlez vous?
    vous devriez déclarer un recordsetlui donner un nom ensuite lui affecté une valeur plus précisement une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim rst as recordset
    set rst=currentdb.openrecordset("votretable")
    ....
    rst.addnew
    ...
    rst.update
    ..
    bonne chance.
    Merci

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Me.Recordset.Addnew pour le recordset du formulaire

    Pour l'instant je survis avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       'Création de l'enregistrement dans la base si ce n'est pas le cas
       If Me.NewRecord Then
         Me.Recordset.AddNew
         Me.Recordset.Update
         Me.DateEntrée = Date    'Juste pour créer l'enregistrement
       End If
    Mais ce n'est pas satisfaisant.
    Par exemple :
    - les boutons de navigation dans le formulaire ne sont pas mis à jour.
    - seule la date est mise à jour puisque je n'ai pas recopié les autres valeurs par défaut (j'ai horreur des doublons)

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    ajouter après le end if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.GoToRecord , "", acNewRec
    Bonne chance.
    Merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Non, c'est plutôt acLast qui m'intéresse puisque je crée l'enregistrement

    J'ai testé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         If Me.NewRecord Then
         Me.DateSortie = Date     'Juste pour créer l'enregistrement
         Me.Requery
       End If
       DoCmd.GoToRecord , "", acLast
    Merci, c'est mieux.
    Le Requery me replace sur le premier enregistrement, donc le GotoRecord...acLast me replace sur celui que je viens de créer

    Les boutons sont mis à jour ce qui est moins perturbant.

    Maintenant, je pensais qu'une solution me permettrais de reprendre les valeurs par défaut du formulaire.

Discussions similaires

  1. [AC-2007] Ouvrir Formulaires/Etats en mode création via VBA
    Par Jaako H. dans le forum Runtime
    Réponses: 4
    Dernier message: 13/12/2010, 13h42
  2. [AC-2007] Création enregistrement dans un autre formulaire
    Par marycaLou dans le forum IHM
    Réponses: 1
    Dernier message: 14/11/2010, 22h01
  3. [AC-2003] Bouton de création d'enregistrement VBA
    Par DuracellSubaquatique dans le forum IHM
    Réponses: 6
    Dernier message: 04/09/2009, 16h16
  4. Réponses: 2
    Dernier message: 18/11/2008, 14h49
  5. Création formulaire uniquement en VBA
    Par AlvinTheMaker dans le forum IHM
    Réponses: 2
    Dernier message: 31/07/2006, 19h45

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