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 :

Enregistrement des données d'un formulaire dans deux tables en VBA Access [AC-2003]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Enregistrement des données d'un formulaire dans deux tables en VBA Access
    Bonjour,

    J'ai un probleme au niveau de l'enregistrement des donées d'un formulaire basé sur la table Avoir dans deux tables diffèrentes (Avoir, facture-avoir).

    Les données s'enregistrent tres bien dans la table avoir avec tous les champs, mais pour la deuxième partie qui consiste à enregistrer juste le N°Avoir et le N°Facture dans la table facture-avoir, il enregistre que le N°Facture et la champ N°Avoir est vide dans la table facture-avoir.

    Voici le code qui s'exécute derrière le bouton "sauvegarde avoir" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Commande146_Click()
        On Error GoTo Err_Commande146_Click
     
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
        DoCmd.RunSQL "insert into [facture-avoir] ([N° de l' avoir], [N° Facture]) values ( " & Me.[N° de l' avoir] & ", " & Me.[N° Facture] & ");"
     
    Exit_Commande146_Click:
        Exit Sub
     
    Err_Commande146_Click:
        MsgBox Err.Description
        Resume Exit_Commande146_Click
     
    End Sub
    j'espère avoir été assez clair !!

    Merci d'avance de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Conseils:
    Évite d'utiliser des commandes de menu pour exécuter une commande.
    Nomme tes contrôles correctement
    Tes noms de champ sont (très) loin d'être normalisés
    Je te préconise un peu de lecture

    Pour ton problème...
    Et du fait que tu aies adopté une convention de nommage de tes champs non normalisée, tu rencontres des problèmes.
    je pense que ta valeur issue de
    doit être plutôt
    et de façon normalisée
    Argy

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse et je suis tout à fait d'accord avec toi.

    Je suis débutante en Access c'est vrai mais j'ai déjà fait de la modélisation Merise, donc N° de l' avoir m'a beaucoup perturbé au début.

    Malheureusement je suis une stagiaire et je reprends une bdd qui a été réalisée par un intérimaire et comme le champ [N° de l' avoir] est lié à pas mal de requêtes j'ai évité de le renommer.

    D'un autre coté mon tuteur ne veut pas que je touche à la structure de cette base.

    Je vais lire la doc que tu m'a conseillé.

    Merci bien.

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par jarodCameleon Voir le message
    D'un autre coté mon tuteur ne veut pas que je touche à la structure de cette base.
    Ca peut se comprendre mais tout de même, sur ce point conventionnel, tu peux dire à ton tuteur de réviser sa copie et de prendre des cours

    Bref, il y a deux espaces dans ton script Insert et ça ma sauté aux yeux comme un coup de pied dans le d.......

    Argy

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    hhhhh à ton avis je peux lui faire ce genre de remarque

    Sinon pour mon problème j'ai enlevé les espaces dans le INSERT mais j'ais toujours le même problème. (Enfin j'espère que c'est les bons espaces qui sautent aux yeux comme un coup de pied dans le d...!!!!!!!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "insert into [facture-avoir] values (" & Me.[N° de l' avoir] & "," & Me.[N° Facture] & ");"
    Merci.

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Humm, non, je parlais des espaces dans le nom du champ :
    http://www.developpez.net/forums/d93...s/#post5277715

    Mais peut-être me trompé-je...

    Argy

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Il y'a bien les deux espaces dans le champ [N° de l' avoir] et un seul dans [N° Facture].

    Si tu as encore une idée je veux bien la tester.

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Eh bien c'est pire que je pensais...
    Bref, tu peux effectuer ce test avec cette modif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        If (Not IsNull(Me.[N° de l' avoir]) Or Len(IsNull(Me.[N° de l' avoir])) > 0) And IsNumeric(Me.[N° de l' avoir]) Then
            If (Not IsNull(Me.[N° Facture]) Or Len(IsNull(Me.[N° Facture])) > 0) And IsNumeric(Me.[N° Facture]) Then
                CurrentDb.Execute "insert into [facture-avoir] values (" & Me.[N° de l    ' avoir] & "," & Me.[N° Facture] & ");", dbFailOnError
            Else
                MsgBox "N° d'avoir requis !", vbExclamation
            End If
        Else
            MsgBox "N° de facture requis !", vbExclamation
        End If
    Argy

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Mon problème est résolu
    Le champ [N° de l' avoir] est de type texte et donc il fallait mettre des simples côtes pour dire que c'est une chaîne de caractères.
    Merci beaucoup!!

    Bonne journée.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    J'ai le même souci actuellement, sauf que l'idée des côtes ne m'avance guère.
    Si quelqu'un pouvais m'aider, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    DoCmd.RunSQL "insert into [T_ConsultantSousTheme]([NC], [IDSousTheme]) values ( " & Me.[LstNC] & ", " & Me.[LstSousTheme] & ");"
    Sachant que NC est de type texte et IDSousTheme de type numérique et les LstNC et LstSousTheme sont des liste déroulante


    Merci d'avance

  11. #11
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Les '' se placent autour des valeurs des type texte...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "insert into [T_ConsultantSousTheme]([NC], [IDSousTheme]) values ( '" & Me.[LstNC] & "', " & Me.[LstSousTheme] & ");"
    Argy

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

Discussions similaires

  1. Réponses: 36
    Dernier message: 12/01/2015, 22h28
  2. Réponses: 6
    Dernier message: 22/07/2013, 17h24
  3. Réponses: 0
    Dernier message: 28/06/2013, 20h10
  4. Réponses: 10
    Dernier message: 23/03/2011, 00h40
  5. Enregistrement des données d'un formulaire dans SharePoint
    Par fanfan49 dans le forum SharePoint
    Réponses: 1
    Dernier message: 07/06/2007, 00h12

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