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 :

Copier un champ d'une table vers une autre table puis effacer ce champ !


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Copier un champ d'une table vers une autre table puis effacer ce champ !
    Bonjour à tous,

    Merci d'avance à ceux qui vont prendre le temps de lire ma question et à ceux qui me guideront vers la solution

    Voici ce que j'ai dans mon projet Access 2003:
    - une table_tasks d'un coté un autre table_historique avec les même nombre de colonne avec les même noms.
    - un formulaire pour encoder des données dans la table_task (id, departement, priorité, discription, note, date d'appel, historique_date).

    dans mon formulaire j ai mis des boutons pour naviger entre les différentes tâches (entre les différents champ enregistré donc).
    j'ai un bouton effacer le champ également.

    jusqu'ici rien de magique

    voici ma question :
    j'aimerai faire un bouton qui me permet de :
    - copier le champ dans une autre table (historique_task)
    - ajouter la valeur =Now() dans la colonne historique_date
    - effacer ce champ de la table_task

    j'ai déjà cherché avec une requet SQL du type INSERT INTO historique_task SELECT * FROM table_task WHERE ??? et c'est dans le WHERE que je devrais récupère l Id de du champ sur le quel je suis dans mon formulaire

    Donc voilà si vous avez des idées en VBA, merci de me guide dans ma recherche, si vous avez des solutions merci de m'écrire le code (macros ou sql) et ce que je dois faire je début avec Access 2003

    à très bientôt
    K.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir et bienvenue sur le forum,

    Les requêtes Access peuvent utiliser des paramètres.
    Les contrôles des formulaires peuvent être utilisés comme paramètres.

    Il faut respecter cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Nom du Formulaire]![Nom du contrôle]
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![Nom du Formulaire]![Nom du contrôle]
    Le nom du formulaire est le nom sous lequel il est enregistré dans Access.
    Pour le nom du contrôle il faut regarder la propriété "Nom" dans l'onglet "Autres" de la fenêtre Propriétés.

    Dans requête ajout (INSERT INTO ...) tu mets comme critère si ton formulaire s'appelle "LeFormulaire" et le contrôle associé au champ ID s'appelle "txtID"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![LeFormulaire]![txtID]
    Ce qui devrait donner pour WHERE du SQL
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ...WHERE ((table_task.id)=[Formulaires]![LeFormulaire]![txtID])

    Je pense que c'est la méthode la plus simple pour commencer.

    A+

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Parfait ça fonctionne un grand merci

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voici ce que j'ai fait


    - ajouter la valeur =Now() dans la colonne historique_date
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Tasks Set EndDate=Now()  WHERE ((tasks.taskid)=[Forms]![Taskslist]![TaskID]);


    - copier le champ dans une autre table (historique_task)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO test SELECT *  FROM Tasks WHERE ((tasks.taskid)=[Forms]![Taskslist]![TaskID]);
    - effacer ce champ de la table_task
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM Tasks WHERE ((tasks.taskid)=[Forms]![Taskslist]![TaskID]);

    Toutes ces requetes sql sont sous un macros, qui est activé par un bouton dans mon formulaire, tout fonctionne correctement merci encore ,

    j'ai une dernière question comment puis je faire pour qu'il arrete de me demander une confirmation pour, l update, le insert into puis pour le delete ?
    quand je click sur le bouton, une fenêtre arrive et me demande de confirmer yes / no, j'aimerai que par défaut il fasse "yes" et me pose pas la question à chaque fois !

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    En VB, tu mets avant de lancer tes requêtes
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SetWarning False
    puis quand elles sont exécutées
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SetWarning True

    Si tes requêtes sont lancées dans une macro, utilise l'action Avertissements (Warnings en anglais)
    avant et après le lancement des requêtes, avec comme paramètres Non (avant requêtes) et Oui (après requêtes).

    A+

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Terrible !

    Merci pour ton aide

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

Discussions similaires

  1. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 19h27
  2. Comment copier une table d'une BD vers une autre BD?
    Par js8bleu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/10/2009, 09h13
  3. copier une table d'une bdd1 vers une bdd2
    Par passion_info dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/10/2006, 18h57
  4. Réponses: 5
    Dernier message: 04/07/2006, 11h29
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54

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