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

Requêtes et SQL. Discussion :

Copie des champs d'un formulaire/sous formulaire vers un nouveau [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Copie des champs d'un formulaire/sous formulaire vers un nouveau
    Bonjour à tous,

    Au moyen d'un bouton de commande, je cherche à copier les valeurs des champs contenus dans un formulaire + sous formulaire, dans un nouveau formulaire + sous formulaire.

    Pour les champs du formulaire, pas de problème, j'y arrive grâce au code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms("FRM_FACTURES").Controls("DATE_TRAVAUX") = Me.DATE_TRAVAUX



    En revanche, pour le sous-formulaire, de type tabulaire, impossible.
    J'ai donc pensé à faire une requête ajout en mode SQL, mais je me noie dans les champs père/fils qui lient les enregistrements

    Les problèmes Access étant parfois un peu complexe à exposer, ma base est dispo ici http://cjoint.com/?0LlncNb2HVk

    Avec le bouton "Créer Facture", sur le formulaire FRM_DEVIS, je cherche à copier toutes les valeurs sur un nouveau formulaire FRM_FACTURES


    Après plusieurs recherche dans le forum, j'ai essayé l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.SetWarnings False
    monSql = "INSERT INTO [TBL_CONTENU_FACTURES] (IDENTIFIANT_FACTURE, ARTICLE_FACTURE, QTE_FACTURE, PU_HT, REMISE) SELECT " & Forms![FRM_FACTURES].NUM_FACTURE & ",ARTICLE_DEVIS, QTE_DEVIS, PU_HT, REMISE FROM [TBL_CONTENU_DEVIS] WHERE IDENTIFIANT_DEVIS=" & Forms![FRM_DEVIS]!NUM_DEVIS
    DoCmd.RunSQL monSql

    Mais ça ne fonctionne pas du tout ^^

    Je bloque :-( :-(

    Merci pour votre aide

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Met un Debug.Print monsql avant l'exécution pour vérifier la syntaxe de ton code SQL.
    Tu récupères l'expression obtenue et tu fais exécuter le code directement dans le QBE pour trouver l'erreur.

    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Bonsoir,

    Met un Debug.Print monsql avant l'exécution pour vérifier la syntaxe de ton code SQL.
    Tu récupères l'expression obtenue et tu fais exécuter le code directement dans le QBE pour trouver l'erreur.

    Cordialement,
    euh......... lol

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-,

    J'ai testé ton code, il tourne. Je pense que tu as plutôt un problème dans l'ordre de ce que tu veux faire.
    Il faut effectivement ouvrir d'abord le formulaire facturation sur un nouvel enregistrement. Y coller toutes les données (je trouve que c'est pas un peu trop ? Ne devrait-tu pas te créer 2 tables T_Client et T_Adresse_Facturation et y récupérer les informations pour affichage uniquement. Mais n'enregistrer dans les tables devis et facturation que l'Id_Client et l'Id_Adresse facturation correspondante ?? Quitte à mettre un client Divers... C'est une suggestion c'est tout.
    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
    'ouvrir le formulaire de facturation sur un nouvel enregistrement
    DoCmd.OpenForm "FRM_FACTURES", , , acNew
    Forms!FRM_FACTURES.DATE_EDITION = Date
    Forms!FRM_FACTURES.DATE_TRAVAUX = Forms!FRM_DEVIS.DATE_TRAVAUX
    Forms!FRM_FACTURES.NOM_CHANTIER = Forms!FRM_DEVIS.NOM_CHANTIER
    Forms!FRM_FACTURES.ADRESSE_CHANTIER = Forms!FRM_DEVIS.ADRESSE_CHANTIER
    Forms!FRM_FACTURES.CP_CHANTIER = Forms!FRM_DEVIS.CP_CHANTIER
    Forms!FRM_FACTURES.VILLE_CHANTIER = Forms!FRM_DEVIS.VILLE_CHANTIER
    Forms!FRM_FACTURES.TELEPHONE_CHANTIER = Forms!FRM_DEVIS.TELEPHONE_CHANTIER
    Forms!FRM_FACTURES.EMAIL_CHANTIER = Forms!FRM_DEVIS.EMAIL_CHANTIER
    Forms!FRM_FACTURES.NOM_FACTURATION = Forms!FRM_DEVIS.NOM_FACTURATION
    Forms!FRM_FACTURES.ADRESSE_FACTURATION = Forms!FRM_DEVIS.ADRESSE_FACTURATION
    Forms!FRM_FACTURES.CP_FACTURATION = Forms!FRM_DEVIS.CP_FACTURATION
    Forms!FRM_FACTURES.VILLE_FACTURATION = Forms!FRM_DEVIS.VILLE_FACTURATION
    Forms!FRM_FACTURES.TELEPHONE_FACTURATION = Forms!FRM_DEVIS.TELEPHONE_FACTURATION
    Forms!FRM_FACTURES.EMAIL_FACTURATION = Forms!FRM_DEVIS.EMAIL_FACTURATION
    Forms!FRM_FACTURES.NOTE_INTERNE = Forms!FRM_DEVIS.NOTE_INTERNE
    Forms!FRM_FACTURES.DESCRIPTION_TRAVAUX = Forms!FRM_DEVIS.DESCRIPTION_TRAVAUX
    Forms!FRM_FACTURES.ETABLISSEMENT = Forms!FRM_DEVIS.ETABLISSEMENT
    Forms!FRM_FACTURES.AVOIR = Forms!FRM_DEVIS.AVOIR
    Forms!FRM_FACTURES.ACOMPTE = Forms!FRM_DEVIS.ACOMPTE
     
    DoCmd.SetWarnings False
    monSql = "INSERT INTO [TBL_CONTENU_FACTURES] (IDENTIFIANT_FACTURE, ARTICLE_FACTURE, QTE_FACTURE, PU_HT, REMISE) SELECT " & Forms![FRM_FACTURES].NUM_FACTURE & ",ARTICLE_DEVIS, QTE_DEVIS, PU_HT, REMISE FROM [TBL_CONTENU_DEVIS] WHERE IDENTIFIANT_DEVIS=" & Forms![FRM_DEVIS]!NUM_DEVIS
    DoCmd.RunSQL monSql
    DoCmd.SetWarnings True
    Ta base avec le code est jointe.

    Bonne continuation

  5. #5
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Tu as raison, cela fait beaucoup d'infos copier. Mais le petit artisan pour lequel je fait la base ne veut pas avoir de table 'clients'

    Merci pour le bout de code ! J'avais effectivement un problème d'ouverture du formulaire !

    Après des heures passées à bidouiller, je passe des fois à côté de choses vraiment énormes

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Mais le petit artisan pour lequel je fait la base ne veut pas avoir de table 'clients'
    Il va te le demander le jour où il aura à recopier à chaque fois les informations sur ces clients au moment de l'établissement du devis ou de la facture.

    Mais comme c'est lui qui paie, le client est ROI

    Bonne continuation

  7. #7
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Héhé :-)

    En fait, 99.9% de ses clients sont des clients "One Shot" : il ne retraite jamais une nouvelle fois avec eux

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/03/2014, 22h28
  2. [AC-2010] Formulaire - Sous formulaire - Sous sous formulaire
    Par meli74 dans le forum IHM
    Réponses: 1
    Dernier message: 21/04/2011, 20h35
  3. Réponses: 4
    Dernier message: 11/04/2007, 19h46
  4. formulaire/sous formulaire/sous formulaire
    Par aimejielle dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 23h48
  5. Réponses: 1
    Dernier message: 10/07/2006, 10h15

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