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 :

[Débutant]Requete INSERT INTO + date


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut [Débutant]Requete INSERT INTO + date
    Bonjour,
    Je souhaiterai savoir comment insérer la date du jour a chaque nouvel enregistrement d'une table. J'ai en effet une requête SELECT, qui selectionne un certain nombre d'enregistrements en comparant 2 tables, suivi d'un INSERT INTO de ces enregistrements dans une nouvelle table (table de sauvegarde) ou je souhaiterai qu'il m'insère en même temps la date du jour.

    Voila ma requete SELECT et INSERT INTO mais je ne sais pas ou écrire l'instruction pour l'ajout de la date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Exécution de la requête3 (insertion)
    rst.Open "SELECT gdo AS Expr2 FROM NouveauALLgdo WHERE permut_typ='HS'", cnx
    While Not (rst.EOF)
      rst3.Open ("INSERT INTO Permut_HS(gdo) VALUES('" & rst("Expr2") & "');"), cnx
      rst.MoveNext
    Si vous avez un conseil, une réflection ...
    Merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Fait le tout en une seule requête : insert into ... select ...
    [Access] Les bases du débogage => ici

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Oui mais ce n'est pas mon problème, je n'arrive pas a insérer la date

  4. #4
    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
    Le plus simple, c'est de mettre dans la valeur par défaut du champ date de ta table
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    De ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Exécution de la requête3 (insertion)
    rst.Open "SELECT gdo AS Expr2 FROM NouveauALLgdo WHERE permut_typ='HS'", cnx
    While Not (rst.EOF)
      rst3.Open ("INSERT INTO Permut_HS(date,gdo) VALUES('" & Now() & "','" & rst("Expr2") & "');"), cnx
      rst.MoveNext

    ????

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into Permut_HS (gdo, DateJour) 
    SELECT gdo, now FROM NouveauALLgdo WHERE permut_typ='HS'
    [Access] Les bases du débogage => ici

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Mais ma requete INSERT INTO insere les enregistrements selectionné dans ma requete SELECT, placé la requete SELECT apres INSERT INTO est fesable ?

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Ben oui.
    Ca te fait un insert de masse . Beaucoup mieux qu'une boucle sur un recordset.
    [Access] Les bases du débogage => ici

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    ça ne marche pas, ce code n'est pas compatible avec le code du formulaire ; j'effectue une requete mais elle est ecrite dans mon formulaire

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    En utilisant ton recordset, tu peux avoir plus performant de la manière suivante;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'Exécution de la requête3 (insertion)
    rst3.Open ("Permut_HS")
    rst.Open "SELECT gdo AS Expr2 FROM NouveauALLgdo WHERE permut_typ='HS'", cnx
    Do until rst.EOF
      rst3.AddNew
      rst3("date") = Now()
      rst3("gdo")=rst("Expr2")
      rst3.Update
     
      rst.MoveNext
    Loop
    Sinon la solutin de Kloun est correcte.
    Amicalement

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    je ne comprend vraiment pas comment insérer cette date avec chaque enregistrements, a chaque fois il me dit une erreur de syntaxe INSERT INTO, ou des erreurs de point virgule alors qu'il n'y en a pas... je ne vois pas comment faire ....

  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
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    INSERT INTO autretable ( champ1, champ2, madate )
    SELECT champ1, champ2, Now() AS madate
    FROM matable;
    Elle est pas belle la vie ?

  13. #13
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Je viens mettre mon grain de sel car j'ai joliment l'impression que tu essaie de mettre des pommes de terre dans un filet à carottes.

    Plaisanterie mise à part, de quel type est ton champ DATE.
    Parce que si tu essaies de mettre une date dans un champs texte ou, ce qui semble être le cas, du texte dans un champ date, cela ne le fait pas vraiment.

    Syntaxe
    a/ si champ texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "SELECT '" & now() & "'"
    (ne pas oublier les cottes simples!)
    ou (j'aime mieux mais bon, chacun ses choix)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format$(now,'yyyymmdd')
    b/ si champ date:

  14. #14
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Le code de DMboop a l'air d'être aproprié à mon projet, mais il n'entraine aucune modification de la table Permut_HS :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Exécution de la requête3 (insertion)
    rst3.Open "SELECT gdo AS Expr2 FROM NouveauALLgdo WHERE permut_typ='HS'", cnx
    rst.Open ("Permut_HS")
    Do Until rst.EOF
     
      rst.AddNew
      rst("date") = Now()
      rst("gdo") = rst3("Expr2")
      rst.Update
      rst.MoveNext
    Loop

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par brak__
    Do Until rst.EOF

    rst.MoveNext
    Loop
    C'est plutôt rst3.EOF et rst3.MoveNext
    Amicalement

  16. #16
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Youpiiiiiiiii ça marche, merci tout le monde !!! Il y avait quelques modifications encore, voici le code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Exécution de la requête3 (insertion)
    rst.Open "SELECT gdo AS Expr2 FROM NouveauALLgdo WHERE permut_typ='HS'", cnx
    Do Until rst.EOF
      Set rst2 = CurrentDb.OpenRecordset("Permut_HS")
      rst2.AddNew
      rst2("date") = Now()
      rst2("gdo") = rst("Expr2")
      rst2.Update
      rst.MoveNext
    Loop
    Il fallait remplacer le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    rst.AddNew
      rst("date") = Now()
      rst("gdo") = rst3("Expr2")
      rst.Update
      rst.MoveNext
    Pour qu'il y ai un recordset DAO, et non ADODB et donc ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst2 = CurrentDb.OpenRecordset("Permut_HS")
    au lieu de

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    C'est bien ça sauf qu'il faut que tu sorte Set rst2 = CurrentDb.OpenRecordset("Permut_HS") de ta boucle.
    Amicalement

  18. #18
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Pourquoi et comment le sortir de ma boucle ?

  19. #19
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Pourquoi?
    Parce que CurrentDb. utilisé après le Do; tu l'instancie plusieurs fois sans jamais le fermer (rst2.Close) avant le Loop. Si ton rst contient trop de ligne tu risque d'avoir des problèmes mémoire au bout de quelques minutes.

    comment le sortir de ma boucle ?

    En mettant jusque avant la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Set rst2 = CurrentDb.OpenRecordset("Permut_HS")
     
    Do Until rst.EOF
    ..
    Voila!
    Amicalement

  20. #20
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 37
    Points
    37
    Par défaut
    Merci c'est nikel

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probleme de requete 'Insert Into'
    Par azerty53 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/05/2006, 14h33
  2. Requete INSERT INTO
    Par cheers94wow dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 11h13
  3. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  4. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 11h23

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