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 :

Bouton pour archiver


Sujet :

Access

  1. #1
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut Bouton pour archiver
    Bonjour à tous

    Tout d'abord allez les bleus !!!!!

    Ensuite ma petite question, Voila j'ai créer un formulaire produit avec plusieurs champs. Je voudrais savoir si il est possible de créer un bouton qui me permetterait d'envoyer le produit et tous ses champs dans une table appelée archive ?

    Si c'est possible comment puis-je réaliser cette opération

    Merci

    A+

  2. #2
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    salut,


    il suffit de réaliser une requête de type INSERT INTO (avec comme paramètre les champs de ton formulaire) dans l'évenement click de ton bouton. il ya un tuto sur les requêtes d'insertion dans la FAQ. avec une recherche avancée tu devrais t'en sortir.

  3. #3
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Merci pour ton aide

    Je viens de faire un essai avec cette requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO archive ( nom, prénom )
    SELECT Table1.nom, Table1.prénom
    FROM Table1
    WHERE (((Table1.nom)=[name ?]));
    Quand je rentre le nom il me dit que je vais bien ajouter une nouvelle ligne dans la table archive mais il ne m'enleve pas ma ligne de ma table1

    Comment faire pour que la requête me permettent de déplacer la ligne entière et me supprime cette ligne de la table1

    Merci de votre aide

    A+

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    1er requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO archive ( nom, prénom )
    SELECT Table1.nom, Table1.prénom
    FROM Table1
    WHERE (((Table1.nom)=[name ?]));

    2ème requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE * 
    FROM Table1        
    WHERE (((Table1.nom)=[name ?]));
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Merci beaucoup

    Est il possible de réunir ces deux requêtes afin que je puisse créer 1 seul bouton qui me permetterait d'inserer mes données dans la table archive et de supprimer en même temps mes données de la Table1 ?


    Merci beaucoup de votre aide

    A+

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Oui,

    par exemple sur 1 form lié à la Table1 et qui possède un contrôle Name:

    et sur click d'1 bouton archiver:

    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
    Private Sub Archiver_Click()
    Dim sql1 As String, sql2 As String
     
    sql1="INSERT INTO archive ( nom, prénom ) " & _
           "SELECT Table1.nom, Table1.prénom " & _
           "FROM Table1 " & _
           "WHERE nom='"  & Me![name] & "'"
     
    sql2="DELETE * " & _
           "FROM Table1 " & _       
           "WHERE nom='"  & Me![name] & "'"
     
    CurrentDb.Execute (sql1)
    CurrentDb.Execute (sql2)
     
    End Sub
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Autre possibilité:

    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 Archiver_Click()
    Dim sql1 As String, sql2 As String
    Dim req1 As QueryDef, req2 As QueryDef
     
    sql1 = "INSERT INTO archive ( nom, prénom ) " & _
           "SELECT Table1.nom, Table1.prénom " & _
           "FROM Table1 " & _
           ""WHERE nom=[Name ?]"
     
    sql2 = "DELETE * " & _
           "FROM Table1 " & _
           "WHERE nom=[Name ?]"
     
    Set req1 = CurrentDb.CreateQueryDef("", sql1) ' ou CurrentDb.QueryDefs("Requete1")
    Set req2 = CurrentDb.CreateQueryDef("", sql2) ' ou CurrentDb.QueryDefs("Requete2")
     
    req1.Parameters(0) = Me!Name
    req2.Parameters(0) = Me!Name
     
    req1.Execute
    req2.Execute
     
    End sub
    @+ de nouvelles
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Ok merci beaucoup

    je viens de faire un test avec la prémière methode et ca fonctionne parfaitement je vais essayer la deuxième

    Merci

    Et Vive la Frannnnnnnnncccccceeeee !!!

    A+

  9. #9
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Bonjour à tous

    Voila jai appliqué les requêtes à mon formulaire

    j'ai ce code qui me provoque une erreur :

    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
    Private Sub Archiver_Click()
    Dim sql1 As String, sql2 As String
     
    sql1 = "INSERT INTO archive ( numero, sap_reference, standard, old_reference, certificate_number, type_report, initial_type_report, extension_number, extension_file, item, brand, production_plant, placement_on_to_the_market, Notified_body, Comments, price, invoice_date, date_of_sending_sample_for_homologation, date_of_sending_technical_file_brand_CE_extension_file, reference_test_11B, date_of_CE_declaration, AFAQ, Family, photo, technical_specifications_FR, technical_specifications_EN, Static_Test, Dynamic_Test, Famil_completey_test, Static Test report number, Agrement number, Dynamic Test report number ) " & _
           "SELECT enr_produits.numero, enr_produits.sap_reference,  enr_produits.standard, enr_produits.old_reference, enr_produits.certificate_number, enr_produits.type_report, enr_produits.initial_type_report, enr_produits.extension_number, enr_produits.extension_file, enr_produits.item, enr_produits.brand, enr_produits.production_plant, enr_produits.placement_on_to_the_market, enr_produits.Notified_body, enr_produits.Comments, enr_produits.price, enr_produits.invoice_date, enr_produits.invoice_date, enr_produits.date_of_sending_sample_for_homologation, enr_produits.date_of_sending_technical_file_brand_CE_extension_file, enr_produits.reference_test_11B, enr_produits.date_of_CE_declaration"
    enr_produits.AFAQ, enr_produits.Family, enr_produits.photo, enr_produits.technical_specifications_FR, enr_produits.technical_specifications_EN, enr_produits.Static_Test, enr_produits.Dynamic_Test, enr_produits.Famil_completey_test, enr_produits.Static Test report number, enr_produits.Agrement number, enr_produits.Dynamic Test report number" & _
           "FROM enr_produits " & _
           "WHERE numero='" & Me![Name] & "'"
     
    sql2 = "DELETE * " & _
           "FROM enr_produits " & _
           "WHERE numero='" & Me![Name] & "'"
     
    CurrentDb.Execute (sql1)
    CurrentDb.Execute (sql2)
     
    End Sub
    Il me met ce message :

    Erreur de compilation, attendu fin d'instruction
    Je vois pas quel est le problème pouvez vous m'aidez ?

    Merci

    A+

  10. #10
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par lolo_bob2
    Erreur de compilation, attendu fin d'instruction
    sur quelle ligne?

    remarque1 : si tes 2 tables ont la même structure (j'ai pas regardé champ par champ...) alors il n'est pas nécessaire de citer tous les champs.

    remarque2 : l'utilisation d'une transaction ne serait pas du luxe, ou au minimum un test pour vérifier que l'insertion s'est bien effectuée
    en effet si l'insertion plante et que la suppression fonctionne alors tu perds ton enregistrement....

  11. #11
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Salut à tous

    Voilà j'ai remodifié ma requête et en fait j'avais le problème à cause de mon champ name qui est numérique et non du texte...

    voila ce que cela donne

    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
    Private Sub Archiver_Click()
    Dim sql1 As String, sql2 As String
     
    sql1 = "INSERT INTO Archive ( numero) " & _
           "SELECT * " & _
           "FROM enr_produits " & _
           "WHERE numero=" & Me![Nom]
     
    sql2 = "DELETE * " & _
           "FROM enr_produits " & _
           "WHERE numero=" & Me![Nom]
     
    CurrentDb.Execute (sql1)
    CurrentDb.Execute (sql2)
     
    End Sub
    Est il possible d'afficher un message me disant que l'opération d'archivage à bien été effectuée ?

    Merci beaucoup

    A+

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    il aurait été plus facile d'ajouter un champ archive
    de type boolean dans la table ou un champ datefin

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Resalut,

    Modifie ton sql1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sql1 = "INSERT INTO archive ( numero, sap_reference, standard, old_reference, certificate_number, type_report, initial_type_report, extension_number, extension_file, item, brand, production_plant, placement_on_to_the_market, Notified_body, Comments, price, invoice_date, date_of_sending_sample_for_homologation, date_of_sending_technical_file_brand_CE_extension_file, reference_test_11B, date_of_CE_declaration, AFAQ, Family, photo, technical_specifications_FR, technical_specifications_EN, Static_Test, Dynamic_Test, Famil_completey_test, Static Test report number, Agrement number, Dynamic Test report number ) " & _
           "SELECT enr_produits.numero, enr_produits.sap_reference,  enr_produits.standard, enr_produits.old_reference, enr_produits.certificate_number, enr_produits.type_report, enr_produits.initial_type_report, enr_produits.extension_number, enr_produits.extension_file, enr_produits.item, enr_produits.brand, enr_produits.production_plant, enr_produits.placement_on_to_the_market, enr_produits.Notified_body, enr_produits.Comments, enr_produits.price, enr_produits.invoice_date, enr_produits.invoice_date, enr_produits.date_of_sending_sample_for_homologation, enr_produits.date_of_sending_technical_file_brand_CE_extension_file, enr_produits.reference_test_11B, enr_produits.date_of_CE_declaration,
    enr_produits.AFAQ, enr_produits.Family, enr_produits.photo, enr_produits.technical_specifications_FR, enr_produits.technical_specifications_EN, enr_produits.Static_Test, enr_produits.Dynamic_Test, enr_produits.Famil_completey_test, enr_produits.Static Test report number, enr_produits.Agrement number, enr_produits.Dynamic Test report number " & _
           "FROM enr_produits " & _
           "WHERE numero='" & Me![Name] & "'"


    sinon ton champ numero doit être du string

    et comme indiqué par Arkham si tes tables enr_produits et archive ont les mêmes champs tu n'as pas besoin de mentionner tout les champs le * suffit.

    et enfin fait une sauvegarde de ta table enr_produits et après on ajoutera une gestion d'erreur dans ton code...

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Essaie ça:

    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
    27
    Private Sub Archiver_Click()
    On Error GoTo Err_Archiver
     
    Dim sql1 As String, sql2 As String
     
    sql1 = "INSERT INTO Archive " & _
           "SELECT * " & _
           "FROM enr_produits " & _
           "WHERE numero=" & Me![Nom]
     
    sql2 = "DELETE * " & _
           "FROM enr_produits " & _
           "WHERE numero=" & Me![Nom]
     
    CurrentDb.Execute sql1, dbFailOnError
    CurrentDb.Execute sql2, dbFailOnError
     
    MsgBox ("Transaction réussi !")
     
    Exit_Archiver:
    Exit Sub
     
    Err_Archiver:
    MsgBox Err.Description
    Resume Exit_Archiver
     
    End Sub
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  15. #15
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Merci beaucoup

    Ca fonctionne parfaitement

    Merci

    A+

  16. #16
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    De rien:

    tu peux aussi utiliser une sub générique du style:

    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
    27
    Public Sub Transaction(source As String, destination As String, critere As String)
    On Error GoTo Err_Transaction
     
    Dim sql1 As String, sql2 As String
     
    sql1 = "INSERT INTO " & destination & _
           " SELECT * " & _
           "FROM " & source & _
           " WHERE " & critere
     
    sql2 = "DELETE * " & _
           " FROM " & source & _
           " WHERE " & critere
     
    CurrentDb.Execute sql1, dbFailOnError
    CurrentDb.Execute sql2, dbFailOnError
     
    MsgBox ("Transaction réussi !")
     
    Exit_Transaction:
    Exit Sub
     
    Err_Transaction:
    MsgBox Err.Description
    Resume Exit_Transaction
     
    End Sub
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

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

Discussions similaires

  1. Bouton pour cocher checkbox
    Par eidole62 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/04/2005, 16h28
  2. bouton pour afficher/cacher une toolbar ??
    Par pi05 dans le forum MFC
    Réponses: 3
    Dernier message: 07/02/2005, 22h05
  3. desactiver bouton pour certains enregistrements
    Par GymTonic dans le forum IHM
    Réponses: 7
    Dernier message: 04/01/2005, 23h46
  4. [JFileChooser] Bouton pour sauvegarder.
    Par Katyucha dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/01/2005, 12h02
  5. [FLASH MX2004] Bouton pour lire vidéo
    Par kiki93 dans le forum Flash
    Réponses: 10
    Dernier message: 23/11/2004, 11h50

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