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 :

une macro "enregistrer donnée en cours"


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut une macro "enregistrer donnée en cours"
    bonjour (ou bonsoir si vous passer a table lol),

    je vais essayer d'être le plus clair possible sans trop rentrer dans les détail de mon projet:

    je voudrais utiliser, dans un formulaire et via un bouton de commande, une macro qui permette d'enregistrer dans une table, une donnée présente sur le formulaire a l'enregistrement surlequel je me suis arrêté ... aie aie j'ai pas l'impression que ce soit clair

    je vais essayer de faire un exemple simple:

    j'ouvre un formulaire, (pour faire simple admettons que la table a laquelle il se réfère ne comporte qu'un seul champs : ref_nb )
    si je voyage parmis les différents enregistrements grâce aux petites flèches en dessous, mon ref_nb change suivant l'enregistrement surlequel je me trouve, ok?
    j'aimerais, lorsque je me suis arrêté sur l'enregistrement voulu, que lorsque j'appuie sur un bouton de contrôle, le ref_nb correspondant soit enregistré dans une table à part (et qui servirait en quelque sorte de table tampon)


    est ce qu'il existe une macro toute faite avec accesse ou est-ce qu'il faut que je chercher cela sur internet

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pas clair

  3. #3
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut copainvince,

    De toute façon Heureux-oli ne fait pas d'effort

    Citation Envoyé par copainvince
    enregistrer dans une table, une donnée présente sur le formulaire a l'enregistrement surlequel je me suis arrêté ...
    J'imagine donc que tu as une table nommée TableTemporaire.

    Pourquoi ne pas passer par une requête dans laquelle tu préciserais que l'enregistrement en cours de ton formulaire doir s'ajouter à ta Table temporaire.

    Ce qui donnerait:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TaTableTemporaire ( TonChamp )
    SELECT TaTable.Tonchamp
    FROM TaTable
    WHERE (((TaTable.Tonchamp)=[Forms]![TonFormulaire]![TonChampDeRéférence]));

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Salut ft050380

    La requête sl ne pourrait-elle pas être simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim RequeteSQL as string
     
    RequeteSQL = "insert into tabletemporaire (ref_nb) valules('" & NomControle.value & "'"
    DoCmd.RunSql RequeteSQL
    Je ne comprends pas l'utilité de passer par un SELECT

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Et en une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "insert into tabletemporaire (ref_nb) values (" & Me.ref_nb & ")"
    si ref_nb est numérique.
    tabletemporaire existe à ce niveau du traitement bien sûr.

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Ah, la concision... J'aime...

    J'oublie souvent ce Currentdb.execute...

    Merci du rappel

  7. #7
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Je ne comprends pas l'utilité de passer par un SELECT
    c'est vrai....

    Préfère,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "insert into tabletemporaire (ref_nb) values (" & Me.ref_nb & ")"
    Pas pensé

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Bonjour à toutes et à tous,
    Ma question est : Quelle est la différence et donc l'avantage entre ce que propose Pierre:
    Citation Envoyé par Pierre Fauconnier
    Salut ft050380

    La requête sl ne pourrait-elle pas être simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim RequeteSQL as string
     
    RequeteSQL = "insert into tabletemporaire (ref_nb) valules('" & NomControle.value & "'"
    DoCmd.RunSql RequeteSQL
    Je ne comprends pas l'utilité de passer par un SELECT
    et ft035580

    INSERT INTO TaTableTemporaire ( TonChamp )
    SELECT TaTable.Tonchamp
    FROM TaTable
    WHERE (((TaTable.Tonchamp)=[Forms]![TonFormulaire]![TonChampDeRéférence]));
    Merci de vos éclaircissement.

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    La différence si situe à l'endroit où cette requête sera effectuée.
    La requête de Pierre est pour le VBA alors que celle de ft050380 est pour le SQL.
    Du moins en très gros.

  10. #10
    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
    De plus, le values spécifie des valeurs saisie par l'utilisateur (ou une macro), le select puise ses données dans une table

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    C'est surtout qu'on travaille sur l'enregistrement courant d'un form dépendant.
    Donc les données sont disponibles sans avoir à refaire un accès par SELECT...

  12. #12
    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
    Citation Envoyé par Faw
    C'est surtout qu'on travaille sur l'enregistrement courant d'un form dépendant.
    Donc les données sont disponibles sans avoir à refaire un accès par SELECT...

    A la différence que le select va tenir compte que :

    - l'enregistrement existe encore,
    - qu'il n'a pas été modifié

    Il peut se passer plein de choses entre l'affichage de l'info sur le formulaire et la validation de la requête

  13. #13
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Oui bien sûr, le contexte peut être plus complexe...ça s'analyse avant

  14. #14
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    merci ca marche avec

    CurrentDb.Execute "insert into tabletemporaire (ref_nb) values (" & Me.ref_nb & ")"

    mais si je veux faire le meme avec un champs qui n'est pas numéric, ca plante ... qu'est ce qu il faut faire pour que ca aille ?

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Il est utile de lire au moins les bases du sql

    Il faut encadrer les valeurs avec '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.Execute "insert into tabletemporaire (ref_nb) values ('" & Me.ref_nb & "')"
    et d'entourer ton code par les balises code (bouton #) pour rendre ton message plus lisible

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2009, 14h28
  2. comment créer une macro d'enregistrements
    Par zalino dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2008, 08h44
  3. Mauvais fonctionnement d'une macro d'enregistrement
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2007, 17h48
  4. [VBA-E] une macro qui enregistre mon fichier Excel
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/03/2007, 11h47
  5. Réaliser une macro qui enregistre le résultat d'une requête
    Par boulette85 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/02/2007, 18h36

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