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 :

Insertion des lignes table Access [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    J'ai un table Access avec des champ suivants:
    NB Numérique
    N° Numéro Auto "Clé"
    iMPRIMER Oui/Non

    Ce table est utilisée pour générer des auto serial numéro d'une étiquette qui est utilisé comme un identifiant d'une boitte dans le stock.
    Le travail est fait comme c'est de suite:
    Insérer le "1" dans le champ "NB" pour générer une numéro auto dans "N°", est cocher "oui" dans "iMPRIMER " après l'impression.

    Nom : 2017-10-16.png
Affichages : 963
Taille : 11,7 Ko


    Ma demande est: est ce que j'ai peut avoir du code VBA pour générer un nombre prédéfini par utilisateur : par exemple l'utilisateur a besoin de 30 étiquettes, il entre seulement le nombre dont il a besoin "30" dans une boite de dialogue, et imprime le nombre d'étiquettes souhaitées ?

    Merci D'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je pense que c'est quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Test_CreerEtiquette()
        Call CreerEtiquette(30)
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub CreerEtiquette(prmNombre As Long)
        Dim db As DAO.Database: Set db = CurrentDb
        Dim r As DAO.Recordset
        Set r = db.OpenRecordset("TaTable", dbOpenDynaset, dbDenyRead + dbDenyWrite) 'Empèche les autres utilisateurs de toucher à la table. Si quelqu'un essaye en même temps Access va générer une erreur.
     
        Dim i As Long: For i = 1 To prmNombre
            r.AddNew 'Ajoute un enregistrement
            r![NB] = 1
            r.Update
        Next i
     
        r.Close: Set r = Nothing 'Libère la table
        db.Close: Set db = Nothing
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    Merci bien marot_r , le code a bien fonctionné.
    Mais est ce que il a une méthode pour automatiser le nombre souhaité (30) pour qu'il devienne un choix de l'utilisateur, c'est par ce que ce nombre peut changé ça dépond du nombre de boittes réceptionnées ?
    Merci encore une autre fois.
    DELLAL

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu crées un formulaire (ou tu utilises un formulaire existant).
    Tu y mets un champ texte, (ex : NbEtiquette) où l'utilisateur pourra saisir le nombre d'étiquette.
    Tu crées un bouton (btnCreerEtiquette) et dans la procédure événementielle associée au click tu mets quelque chose comme :

    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
    on error goto err_btnCreeEtiquette_OnClick
     
    if nz(me.nbEtiquette,0)=0 then
       msgbox "Vous n'avez pas indiqué le nombre d'étiquettes.", vbinformation
       goto exit_btnCreeEtiquette_OnClick
    end if
     
    dim mess as string
    mess="Attention vous allez créer : " & me.NbEtiquette & "."
    mess=mess & vbnewline & vbnewline & "Confirmez-vous ?"
     
    if vbyes=msgbox(mess, vbquestion) then
       call CreerEtiquette(me.NbEtiquette)
    end if
     
    exit_btnCreeEtiquette_OnClick:
       exit sub
     
    err_btnCreeEtiquette_OnClick:
       msgbox "Erreur : " & err.number & ", " & err.description, vbexlcamation
       resume exit_btnCreeEtiquette_OnClick
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Rebonjour marot_r ,

    J'ai suivi les étapes comme vous avez indiqué dans votre réponse, mais j'ai face une erreur:

    Nom : 2017-10-18 (2).png
Affichages : 904
Taille : 124,7 KoNom : 2017-10-18.png
Affichages : 902
Taille : 132,9 Ko

    Quelle est le probléme a votre avis?

    Merci

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    GoTo (aller à) renvoi ton code à une étiquette qui n’existe pas. Dans ton cas, elle semble mal écrite et correspondre à :
    « Err_btnCreeEtiquette_Onclick: »
    Corrige donc après GoTo et renomme en « Err_btnCreeEtiquette_Onclick » (sans les « : » à la fin)
    Cordialement.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut ion des lignes table Access
    Merci lisamano,

    C'est ok j'ai résolu le problème de code
    Il reste un chose, comment j'ai put relier entre le premier code proposer par marot_r ""Call CreerEtiquette(30)"" et le nouvelle code proposer?
    Car malgré le code est correct, les nouvelle étiquette définie dans zone de texte "NbEtiquette" n'a aucune action sur ma table, et l'insertion des nouvelles étiquettes?

    Merci de votre support encore.

    Salutations

    dellal

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'était exit_btnCreeEtiquette_Onclick, désolé.

    La création est appelée ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call CreerEtiquette(me.NbEtiquette)
    donc soit l'instruction n'est pas exécutée, soit il y a un problème dans le code de call CreerEtiquette().

    Met un point d'arrêt en cliquant dans la marge à gauche de call CreerEtiquette(me.NbEtiquette) pour vérifier que cette instruction est bien exécutée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut
    Bonjour Tous,

    Maleuresment le code fonction on term des Messages, mais en terme de mise a jiures est insertion dans la table ne fonction pas:
    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
    Private Sub btnCreerEtiquette_Click()
    On Error GoTo err_btnCreerEtiquette_OnClick
     
    If Nz(Me.NbEtiquette, 0) = 0 Then
       MsgBox "Vous n'avez pas indiqué le nombre d'étiquettes.", vbInformation
       GoTo exit_btnCreerEtiquette_OnClick
    End If
     
    Dim mess As String
    mess = "Attention vous allez créer : " & Me.NbEtiquette & "."
    mess = mess & vbNewLine & vbNewLine & "Confirmez-vous ?"
     
    If vbYes = MsgBox(mess, vbQuestion) Then
       Call CreerEtiquette(Me.NbEtiquette)
    End If
     
    exit_btnCreerEtiquette_OnClick:
       Exit Sub
     
    err_btnCreerEtiquette_OnClick:
       MsgBox "Erreur : " & Err.Number & ", " & Err.Description, vbexlcamation
       Resume exit_btnCreerEtiquette_OnClick
    End Sub

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Maleuresment le code fonction on term des Messages, mais en terme de mise a jiures est insertion dans la table ne fonction pas:
    Donc, si je saisi bien, l'instruction Call CreerEtiquette(Me.NbEtiquette) est exécutée mais il n'y a pas de création de ligne. C'est bien cela ?

    Si oui, mets un point d'arrêt sur la ligne Public Sub CreerEtiquette(prmNombre As Long).
    Quand le code va s'arrêter, pointe avec la souris sur prmNombre. Access va t'afficher la valeur. Vérifie que la valeur est bien la valeur attendue (ex : 30).

    Si le code fonctionne quand tu utilises Test_CreerEtiquette(), alors il y a probablement un problème lors du passage des paramètres.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    L'image ci-dessous confirme que le code apparemment travaille correctement sauf que la modification des données dans la table.
    Nom : 2017-10-19.png
Affichages : 904
Taille : 40,7 Ko

    Est ce que je doit activer quelque chose pour avoir :

    ""Quand le code va s'arrêter, pointe avec la souris sur prmNombre. Access va t'afficher la valeur. Vérifie que la valeur est bien la valeur attendue (ex : 30).""

    Merci d'avance

    Dellal

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Vérifie dans la table elle-même si les données ont bien été crées.
    Il se peut que ton formulaire ne soit pas à jour au niveau de l'affichage.
    Est-ce que ta liste d'étiquette est affichée dans le formulaire principal ou dans un sous-formulaire ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    J'ai toujours actualisé la table après l'utilisation de code, mais aucune addition dans la table, par contre le premier code proposé a bien fonctionné avant d'ajouter la saisie sur la zone texte.
    la liste des étiquettes premièrement est affichée sur la table, puis j'ai une étiquette code barre "sur un formulaire" qui va donner source et le champ "N°".
    Salutations
    dellal
    Nom : 2017-10-19 (1).png
Affichages : 833
Taille : 4,3 Ko

  14. #14
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    ça marche, j'ai juste modifié le premier code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call CreerEtiquette(Me.NbEtiquette)
    maintenant l'insertion est bien sur la table à partir de la zone texte.
    MERCI

  15. #15
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Étrange, refait :

    Mets un point d'arrêt sur la ligne Public Sub CreerEtiquette(prmNombre As Long).
    Quand le code va s'arrêter, pointe avec la souris sur prmNombre. Access va t'afficher la valeur. Vérifie que la valeur est bien la valeur attendue (ex : 30). (il n'y a rien à faire, Access va s'arrêter et tu pourras agir.).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    J'ai essayé mais ça ne marche pas avec moi.

    Nom : 2017-10-19 (5).png
Affichages : 926
Taille : 142,8 Ko

  17. #17
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pour mettre un point d'arrêt, il faut cliquer dans la marge complètement à gauche de la ligne voulu.
    Cela va mettre un gros rond marron et surligner la ligne en marron.
    Il ne faut pas mettre un point au bout de la ligne.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  18. #18
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    J'ai compris le problème.

    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vbyes=msgbox(mess, vbquestion)
    il faut mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vbyes=msgbox(mess, vbquestion+vbyesno+vbdefaultbutton2)
    Sinon la réponse ne vaut jamais VBYes et le code ne s'exécute pas.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Insertion des lignes table Access
    Bonjour,

    C'est bien Fonctionné .......Merci

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

Discussions similaires

  1. Calcul de la moyenne d'une activite + insertion des lignes
    Par Chikatilo dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 03/09/2008, 19h19
  2. Insertion dans une table Access
    Par darkann dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2007, 15h25
  3. Insertion dans une table Access (ASP 2.0)
    Par Paul Van Walleghem dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2007, 14h19
  4. [C#] Insertion dans une table Access
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 02/10/2006, 13h24
  5. Problème d'insertion dans une table Access
    Par tribaleur dans le forum ASP
    Réponses: 21
    Dernier message: 27/06/2006, 08h20

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