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 :

Ajouter un enregistrement a un table a partir d'un sous-formulaire


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 59
    Points
    59
    Par défaut Ajouter un enregistrement a un table a partir d'un sous-formulaire
    Bonjour a tous,

    J'ai un formulaire qui contient un controle et sur ce controle il y a un sous-formulaire. J'aimerais a partir du sous formulaire ajouter un enregistrment dans la table correspondante.

    Voici les noms utilises:
    Formulaire principal contenant le controle: frm_AddItems
    Controle sur le form principal contenant le sous-formulaire:ctrAddItems
    Sous-formulaire: sbfrm_tblEmetteurs_AddItems

    J'ai tente plusieurs solutions mais aucune ne marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Load()
        Me.ctrAddItems.Name.SetFocus
        Me.ctrAddItems.Form.Recordset.AddNew
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Load()
    DoCmd.GoToRecord acDataForm, Me.frmAddItems.ctrAddItems.sbfrm_tblEmetteurs_AddItems.Name, acNewRec
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Load()
        Me.ctrAddItems.Name.SetFocus
        DoCmd.GoToRecord acDataForm, Me!ctrAddItems.sbfrm_tblEmetteurs_AddItems.Name, acNewRec
    End Sub
    Je commence vraiment a etre a court d'idees.

    Merci de m'aider si vous voyez une solution.

    C

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,
    C'est sympa d'avoir des idées (à une époque ça devait remplacer le pétrole...) mais consulter la doc c'est mieux.

    1) ne fait aucun traitement de données sur l'événement Load, le formulaire est en cours de chargement, donc les données ne sont pas encore présentes. Utilise form_Open plutôt.

    2) Si tu fonctionnes avec le . tu accès à l'autocomplétion, donc Name.setfocus, je ne pense pas que ça existe . A de rares exceptions ce qu'il y a dans une liste, c'est ce que tu peux utiliser, et rien de plus, inutile de t'inventer des méthodes/propriétés.
    Me.sbfrm_tblEmetteurs_AddItems.setfocus devrait mieux fonctionner.

    3) Docmd est la commande qu'il te faut. encore faut-il utiliser les bons arguments et connaitre sa vrai fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.GoToRecord acDataForm,"sbfrm_tblEmetteurs_AddItems",acNewRec
    PS : Le setfocus est inutile pour invoquer cette commande, elle n'est utile que pour "l'activation" du contrôle.

    Si tu lis la doc sur cette commande (F1 sur GotoRecord) tu verras que c'est juste un placement sur le nouvel enregistrement, rien n'est créé.

    Pour créer véritablement un enregistrement, soit tu utilises une requête (dans ton code c'est possible) soit tu le fais avec des recordset addnew et update.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    me.sbfrm_tblEmetteurs_AddItems.form.recordset.addnew
    me.sbfrm_tblEmetteurs_AddItems.form.moncontrole = valeur
    me.sbfrm_tblEmetteurs_AddItems.form.recordset.update
    Il y a un tuto sur DAO.

    Bref comme tu le vois, ACCESS et très différent d'EXCEL.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/03/2009, 11h36
  2. Réponses: 4
    Dernier message: 10/12/2006, 16h47
  3. bouton qui ajoute un enregistrement dans une table
    Par petitours dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2006, 13h33
  4. Réponses: 1
    Dernier message: 11/08/2006, 23h02
  5. Réponses: 2
    Dernier message: 08/02/2006, 21h22

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