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 :

récupérer numéro auto juste créé


Sujet :

Access

  1. #1
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut récupérer numéro auto juste créé
    Bonjour,

    J'ai un premier formulaire pour créer une nouvelle entreprise. En cliquant sur le bouton valider sur celui ci, la nouvelle donnée s'enregistre dans la base et mon second formulaire s'ouvre afin de saisir la liste des employés. Comment puis-je faire pour récupérer le numéro auto de la nouvelle entreprise sur le deuxième formulaire (pour pouvoir remplir le champ Num_Entreprise dans la liste des employés)?

  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 052
    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 052
    Points : 24 645
    Points
    24 645
    Par défaut
    Bonjour,

    Après la commande d'ouverture docmd.openform copie la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if isnull(forms!form2.n_entreprise) then forms!form2.n_entreprise = me.n_entreprise
    Cordialement,

  3. #3
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Oui, mais j'ai pas de champ NumAuto sur mon premier formulaire. Il se créer quand je valide seulement. Je pense avoir trouvé comment faire en passant par un sous formulaire. En attendant, merci!!

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu utilises DAO ou ADO ? Montre ton code de validation

  5. #5
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Voila mon code sur le bouton Valider

    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
    'BT_VALID___________________________________________________________________________________
    '********
        Private Sub Bt_Valid_Click()
            Dim MySQL As String 'Déclaration de la variable MySQL
            Me.Bt_Valid.SpecialEffect = 2
            MySQL = "INSERT INTO RECLASSEMENT(ER_Siret,ER_RaisonSoc,ER_Adresse,ER_CP, ER_Ville, ER_Tel, ER_Fax, ER_Mail, ER_Site, ER_TitreC, ER_NomC, ER_PrenomC, ER_TelC1, ER_TelC2, ER_MailC, ER_Commentaires, ER_CommentairesC, ER_EffectifLicencie, ER_DateLicenciement) VALUES (Tx_Siret.Value, Tx_Raison.Value, Tx_Adresse.Value, Tx_CP.Value, Tx_Ville.Value, Tx_Tel.value, Tx_Fax.value, Tx_Mail.value, Tx_Site.value, LM_TitreC.value, Tx_NomC.value, Tx_PrenomC.value, Tx_TelC1.value, Tx_TelC2.value,Tx_MailC.value,Tx_Commentaires.value, Tx_CommentairesC.value, Tx_Effectif.value, Tx_Date.value);"
            DoCmd.SetWarnings False
            DoCmd.RunSQL MySQL
            If MsgBox("                  Votre enregistrement a bien été ajouté à la base de données." & vbNewLine & "Voulez-vous saisir la liste des licenciés de l'entreprise " & Nom & " maintenant?", vbYesNo) = vbNo Then
              DoCmd.Close
              Else
                DoCmd.OpenForm "SaisieLicenciés", acNormal, , , , , "Nouvelle Cellule!Tx_Raison.value"
            End If
            Me.Bt_Valid.SpecialEffect = 1
        End Sub

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Quelques problèmes :

    Préfère Currentdb.Execute au lieu de docmd.runsql. Cela évite de gérer les warning.

    Si tu fait un debug print de mysql, tu t'apercevras qu'elle est fausse ! Les valeurs des contrôles ne peuvent pas être placé ainsi dans la variable (cf les tutos d'initiation sur la notion de variable et de valeur)

    De toute façon pour ce que tu souhaites faire, il te faut passer par un recordset. La valeur du champ autoincrémenté est alors disponible entre l'addnew et l'update

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim oRst As DAO.Recordset
        Set oRst = CurrentDb.OpenRecordset("Reclassement")
        With oRst
            .AddNew
            .Fields("ER_Siret") = tx_siret
            ....
            MsgBox .Fields("ChampAutoIncremente")
            .Update
        End With

  7. #7
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    j'ai pas tout compris mais je vais essayé comme ca, merci!

  8. #8
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Tofalu, comment ça se fait qu'effectivement ca me renvoit faux quand j'utilise debug.print et que pourtant l'enregistrement se fait bien dans la base?

  9. #9
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut probleme avec le curseur
    Bonjour,

    J'ai bien effectué les modifications nécessaires comme vous me l'indiquiez . Par contre, je viens de me rendre contre d'un probleme: Quand je clique sur le bouton valider le dernier controle rempli (et ou le curseur se trouve également) ne s'insere pas dans la base. Comment cela se fait il?

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu as peut être oublié de le renseigner. Montres nous ce que tu as fait.

  11. #11
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Voila mon code mais le probleme se passe aussi bien sur un controle que sur un autre, du moment que celui ci est le dernier renseigné.

    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
    'BT_VALID___________________________________________________________________________________
    '********
        Private Sub Bt_Valid_Click()
            Dim oRst As DAO.Recordset 'Déclaration
            Dim entreprise
                Set oRst = CurrentDb.OpenRecordset("RECLASSEMENT")
                    With oRst
                        .AddNew
                        .Fields("ER_Siret") = Tx_Siret
                        .Fields("ER_RaisonSoc") = Tx_Raison
                        .Fields("ER_Adresse") = Tx_Adresse
                        .Fields("ER_CP") = Tx_CP
                        .Fields("ER_Ville") = Tx_Ville
                        .Fields("ER_Tel") = Tx_Tel
                        .Fields("ER_Fax") = Tx_Fax
                        .Fields("ER_Mail") = Tx_Mail
                        .Fields("ER_Site") = Tx_Site
                        .Fields("ER_TitreC") = Lm_TitreC
                        .Fields("ER_NomC") = Tx_NomC
                        .Fields("ER_PrenomC") = Tx_PrenomC
                        .Fields("ER_TelC1") = Tx_TelC1
                        .Fields("ER_TelC2") = Tx_TelC2
                        .Fields("ER_MailC") = Tx_MailC
                        .Fields("ER_Commentaires") = Tx_Commentaires
                        .Fields("ER_CommentairesC") = Tx_CommentairesC
                        .Fields("ER_EffectifLicencie") = Tx_Effectif
                        .Fields("ER_DateLicenciement") = Tx_Date
                        entreprise = Tx_Raison
                        If MsgBox("Voulez- vous saisir la liste des licenciés de l'entreprise " & entreprise & " maintenant?", vbYesNo) = vbNo Then
                          DoCmd.Close
                          Else
                            .Update
                            DoCmd.OpenForm "SaisieLicenciés", acNormal, , , , , "Ouvre le formulaire Licenciés"
                        End If
                    End With
        End Sub

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Eh bien tout les champs tx_ doivent être précédé de Me.Tx_...

    ensuite la manière de récupérer entreprise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    entreprise = Tx_Raison
    n'est pas bon. il faut plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    entreprise =.Fields("ChampAutoIncremente")
    Enfin regarde bien la place du Update.

  13. #13
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Si je mets ca, ca va m'afficher le numéro auto et pas le nom de mon entreprise? non?

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    La question je le rappel
    Comment puis-je faire pour récupérer le numéro auto de la nouvelle entreprise sur le deuxième formulaire?
    A t elle changée entre temps?

  15. #15
    Membre du Club Avatar de puppusse79
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    euh...oui il y en a une autre depuis, postée aujourd'hui dans le meme sujet à 17h05. Mon numéro auto est bien récupéré, juste un petit souci dans l'enregistrement de mes données...
    Merci quand mm

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/10/2013, 17h31
  2. [MySQL] Récupération d'un numéro auto juste aprés une INSERTION
    Par GarsDuCalvados dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/11/2010, 15h06
  3. [AC-2007] Comment récupérer la valeur du dernier numéro auto inséré dans une table ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2010, 17h17
  4. [AC-2007] Récupérer le Numéro auto d'un champ
    Par bugland dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 28/10/2009, 20h11
  5. Récupérer le numéro auto lors d'une insertion
    Par zoidy dans le forum Access
    Réponses: 5
    Dernier message: 27/04/2006, 11h20

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