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

IHM Discussion :

Sous formulaire feuille de donnée : Ajouter un enregistrement


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut Sous formulaire feuille de donnée : Ajouter un enregistrement
    Bonjour,

    J'ai Formulaire société avec un sous formulaire qui m'affiche les contacts lié à la société.

    Quand je doubleclik sur le Nom du contact, cela m'ouvre le formulaire fiche contact correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub SC_Nom_DblClick(Cancel As Integer)
    'Ouvre le formulaire contact sur l'enregistrement correspondant
    Dim NumIdnom As Long
    NumIdnom = Me.SC_id
    DoCmd.OpenForm ("frm_contacts"), , , "[SC_id]=" & NumIdnom
    End Sub
    Jusque la tout va bien.

    Maintenant je voudrais pouvoir ajouter un nouveau contact.
    Je me positionne sur la dernière ligne (nouvel enregistrement) je doubleclik sur le nom et là j'ai une belle erreur d'éxécution 94 - utilisation incorrecte de Null.

    Comment je dois m'y prendre pour créer le nouvel enregistrement ?

    merci d'avance

    Seb

  2. #2
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    J'avance un peu

    j'ai modifié mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub SC_Nom_DblClick(Cancel As Integer)
    'Ouvre le formulaire contact sur l'enregistrement correspondant
    Dim NumIdnom As Variant
    NumIdnom = Me.SC_id
    If Not (IsNull(NumIdnom)) Then
    DoCmd.OpenForm ("frm_contacts"), , , "[SC_id]=" & NumIdnom
    Else
    DoCmd.OpenForm ("frm_contacts"), , , , acFormAdd
    End If
    End Sub
    Mon problème se situe sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm ("frm_contacts"), , , , acFormAdd
    Le form s'ouvre bien en mode ajout mais il ne me lie pas le nouvel enregistrement à la société (relation 1a+ sur le champ S_id)

    Comment faire ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    Bonjour,

    As tu tenter de récupérer la valeur de ton champs pour l'introduire automatiquement dans ton nouvel enregistrement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DoCmd.OpenForm ("frm_contacts"), , , , acFormAdd
    Forms![frm_contacts]![SC_id].value = Me!NumIdnom

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Merci pour votre réponse,


    Le problème est que NumIdnom est à la valeur "Null"...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    dans ce cas tu peux aussi interdire l'ajout vias ton sous formulaire et créer un bouton "Ajouter un contact"

    qui lui fera les action que tu as choisie.

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    si je crée un bouton pour ajouter un enregistrement, j'obtiens le meme probleme.

    Après réflexion, je pense que le problème est du au fait que j'essayes d'ouvrir un enregistrement qui n'existe pas encore.

    Pour pallier a ceci j'ai trouvé la parade suivante :

    J'ajoute l'enregistrement par DAO :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub SC_Nom_DblClick(Cancel As Integer)
    'Ouvre le formulaire contact sur l'enregistrement correspondant
    'rs_id = Me.SC_id
    Dim NumIdnom As Variant
    Dim NumIDsoc As Variant
     
     
    NumIdnom = Me.SC_id
    NumIDsoc = Me.S_id
     
    If Not (IsNull(NumIdnom)) Then
    DoCmd.OpenForm ("frm_contacts"), , , "[SC_id]=" & NumIdnom
     
    Else
     
     
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset("Tb_contact_sociètè", dbOpenTable)
     
    'Passe en mode Ajout
    oRst.AddNew
     
    'Affecte les différents champs
    oRst.Fields("S_id").Value = NumIDsoc
     
    'Met à Jour
    oRst.Update
     
     
    'Libération des objets
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
     
     
    End If
    End Sub
    Avec ce code, l'enregistrement est bien ajouté.
    le champ S_id récupère bien la valeur correspondant a la société
    Le champ SC_id (champ clef primaire - num auto - sans doublons) s'incrémente correctement.

    Maintenant je touche presque au but. J'ai besoin de récupérer la valeur du SC_id fraichement créé pour la passer comme condition where à mon ouverture de formulaire contact.

    Mais comment faire ??

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    C'est bon j'ai trouvé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'récupère la nouvelle clé
    NewSCid = oRst.Fields("SC_id").Value

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

Discussions similaires

  1. [AC-2000] Mise à jour sous formulaire feuille de données
    Par SLEGRAND76 dans le forum IHM
    Réponses: 6
    Dernier message: 29/09/2009, 20h06
  2. Réponses: 2
    Dernier message: 09/04/2008, 00h05
  3. Réponses: 3
    Dernier message: 25/02/2008, 10h18
  4. Impression sous formulaires feuille de donnée
    Par langelot222 dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2007, 20h23
  5. Sous-Formulaire feuille de données
    Par steps5ive dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2007, 09h37

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