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 :

[Requête] Problème INSERT INTO


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut [Requête] Problème INSERT INTO
    Bonjour,

    Dans le code ci-dessous, j'ai le INSERT INTO qui me ramème le message suivant :
    Erreur d'exécution '3134'

    Syntx error in INSERT INTO statement.


    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
    28
    29
    30
    31
    32
    33
    34
     
    Private Sub tables_Click() 
     
        Dim oRst As DAO.Recordset 
        Dim strTo As String 
        Dim oTable As Variant 
        Dim oEnr As Variant 
     
        'Ouvre un recordset sur les dossiers incomplets 
        Set oRst = CurrentDb.OpenRecordset("SELECT * FROM Dossiers_incomplets") 
     
        'Boucle sur chaque numéro de magasin 
        While Not oRst.EOF 
            Set oEnr = oRst.Fields("REF") 
            If oEnr <> "" Then 
                'Création de la table temporaire 
                DoCmd.RunSQL "CREATE TABLE Temp " _ 
                & "(REF CHAR, CA CHAR, CF TEXT, FAM TEXT, FRS TEXT, DES
    TEXT, REFF TEXT, CSM TEXT, ARF TEXT, PDD TEXT, IMEI TEXT);" 
                'Renommer Table Temporaire par Num Mag 
                DoCmd.Rename "" & oEnr & "_Dossiers_RR_Cogedem", acTable, "Temp" 
                'Récupère le nom de la table 
                oTable = "" & oEnr & "_Dossiers_RR_Cogedem" 
                'Copie les enregistrements du magasin dans la nouvelle table 
                DoCmd.RunSQL "INSERT INTO " & oTable & "" _ 
                    & "SELECT *  " _ 
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';" 
                'Supprime les enregistrements du magasin dans table Dossiers_incomplets 
                DoCmd.RunSQL "DELETE * FROM " _ 
                    & "Dossiers_RR_Cogedem WHERE WHERE REF='" & oEnr & "';" 
            End If 
        Wend 
     
    End Sub
    Pouvez-vous m'indiquer où se trouve mon erreur ?

    J'ai une doute sur la table de réception car les deux premier champs devrait être en numérique mais je ne trouve pas le type de donnée qu'il faut mettre.

    Merci,

    LeRico

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Essaies ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO MATABLE1 (Champ1,champ2,etc...)
    SELECT ('" & MATABLE2.Champ1 & "','" & MATABLE2.Champ2 & "',etc...);

  3. #3
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Tu veux que je mette les noms de chaque champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "INSERT INTO " & oTable & "(REF TEXT, CA TEXT, CF TEXT, FAM TEXT, FRS TEXT, DES TEXT, REFF TEXT, CSM TEXT, ARF TEXT, PDD TEXT, IMEI TEXT)""" _
    & "SELECT REF , CA , CF , FAM , FRS , DES , REFF , CSM , ARF , PDD , IMEI " _
    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    Le message d'erreur est identique.

    LeRico


    FRANK

  4. #4
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Désolé, j'ai oublié de mettre les balises.

  5. #5
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Tu veux que je mette les noms de chaque champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "INSERT INTO " & oTable & "(REF TEXT, CA TEXT, CF TEXT, FAM TEXT, FRS TEXT, DES TEXT, REFF TEXT, CSM TEXT, ARF TEXT, PDD TEXT, IMEI TEXT)""" _ 
    & "SELECT REF , CA , CF , FAM , FRS , DES , REFF , CSM , ARF , PDD , IMEI " _ 
    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    Le message d'erreur est identique.

    LeRico

  6. #6
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    les quote doivent être mises pour chaque champ.

  7. #7
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    Et merci pour ta rapidité de réponse.

    J'ai modifié mon INSERT INTO mais il me dit que la variable n'est pas définie pour Dossiers_incomplets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                DoCmd.RunSQL "INSERT INTO " & oTable & "(REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI)""" _
                    & "SELECT ('" & Dossiers_incomplets.REF & "' , '" & Dossiers_incomplets.CA & "' , '" & Dossiers_incomplets.CF & "' ,'" & Dossiers_incomplets.FAM & "' , '" & Dossiers_incomplets.FRS & "' , '" & Dossiers_incomplets.DES & "' , '" & Dossiers_incomplets.REFF & "' , '" & Dossiers_incomplets.CSM & "' , '" & Dossiers_incomplets.ARF & "' , '" & Dossiers_incomplets.PDD & "','" & Dossiers_incomplets.IMEI & "') " _
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    Faut-il mettre des crochets.

    Merci,

    LeRico

  8. #8
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Essaies comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "INSERT INTO " & oTable & " (REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI) " _ 
                    & "SELECT ('" & REF & "' , '" & CA & "' , '" & CF & "' ,'" & FAM & "' , '" & FRS & "' , '" & DES & "' , '" & REFF & "' , '" & CSM & "' , '" & ARF & "' , '" & PDD & "','" & IMEI & "') " _ 
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';

  9. #9
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Même réponse variable non définie sur REF après le SELECT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                DoCmd.RunSQL "INSERT INTO " & oTable & "(REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD,IMEI)""" _
                    & "SELECT ('" & REF & "' , '" & CA & "' , '" & CF & "' ,'" & FAM & "' , '" & FRS & "' , '" & DES & "' , '" & REFF & "' , '" & CSM & "' , '" & ARF & "' , '" & PDD & "','" & IMEI & "') " _
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    Quand je copie l'enregistrement de la table Dossiers_incomplets vers la nouvelle table manuellement, je n'ai pas de problème donc les champs sont correctes.

  10. #10
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    tu as trop de " là: Je les avais enlevé dans le code que je t'ai fourni.

  11. #11
    Membre confirmé
    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
    Points : 580
    Points
    580
    Par défaut
    salut,

    pourquoi fais-tu des concaténations de chaines dans tes projections ? on est d'accord que les valeurs que tu insères (ceux qui font partie de la projection de ta table Dossiers incomplets ) ne viennent pas d'un champ d'un formulaires ou autres mais bien directement de la table même ?
    si c'est le cas ceci suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "INSERT INTO " & oTable & "(REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD,IMEI)" _ 
                    & "SELECT (REF  , CA , CF  ,FAM  , FRS , DES , REFF ,  CSM , ARF , PDD ,IMEI ) " _ 
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    seul oEnr et oTable sont des variables venant d'un formulaire ou etat si j'ai bien compris.
    nb : dans la chaine ""(REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD,IMEI)" on a pas besoin de mettre 3 quotes comme tu l'as fait au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(REF TEXT, CA TEXT, CF TEXT, FAM TEXT, FRS TEXT, DES TEXT, REFF TEXT, CSM TEXT, ARF TEXT, PDD TEXT, IMEI TEXT)""" _
    j'espère que je me suis fais comprendre et surtout avoir compris ce que tu veux.

  12. #12
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Merci, je n'avais pas remarqué.

    J'ai corrigé et relancé.
    Maintenant, j'ai le message suivant :

    Exécution '3075'

    Syntax error (comma) in query expression
    '(",",",",",",",",",",")'

    ça à l'air plus explicite mais j'hésite à retirer les doubles quotes.

  13. #13
    Membre confirmé
    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
    Points : 580
    Points
    580
    Par défaut
    essais voir de mettre ta chaine SQL dans une variable et afficher ta chaine dans un msgbox et execute pour mieux voir les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim var as string 
    var = "INSERT INTO " & oTable & "(REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD,IMEI)" _ 
                    & " SELECT (REF  , CA , CF  ,FAM  , FRS , DES , REFF ,  CSM , ARF , PDD ,IMEI ) " _ 
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';" 
     
    msgbox var
    et qu'est ce que ça donne ?

    attention dans ta chaine respecte bien les espaces.

  14. #14
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Citation Envoyé par Petogaz
    essais voir de mettre ta chaine SQL dans une variable et afficher ta chaine dans un msgbox et execute pour mieux voir les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim var as string 
    var = "INSERT INTO " & oTable & "(REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD,IMEI)" _ 
                    & " SELECT (REF  , CA , CF  ,FAM  , FRS , DES , REFF ,  CSM , ARF , PDD ,IMEI ) " _ 
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';" 
     
    msgbox var
    et qu'est ce que ça donne ?

    attention dans ta chaine respecte bien les espaces.
    Si ces champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (REF  , CA , CF  ,FAM  , FRS , DES , REFF ,  CSM , ARF , PDD ,IMEI ) " _
    viennent bien 'une table et ne sont pas des paramêtres (ce que je croyais, en fait), il n'y a pas de raison que la requête de petogaz ne fonctionne pas.
    Bien vu.

  15. #15
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Voici le message :

    INSERT INTO 754_Dossiers_RR_Cogedem (REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI) SELECT (" ," ," ," ," ," ," ," ," ," ," ) FROM Dossiers_incomplets WHERE REF='754';

    Pour le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "INSERT INTO " & oTable & " (REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI) " _
                    & "SELECT (REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI) " _
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"

  16. #16
    Membre confirmé
    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
    Points : 580
    Points
    580
    Par défaut
    les champs CA, CF.... dans ton SELECT sont sensés venir de la table Dossiers_incomplets ?
    cette table existe ? donnes nous la stucture de la table Dossiers_incomplets .
    merci

  17. #17
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    C'est assez bizzard seulement essaye de mettre les espaces correctement
    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (REF,CA, CF ,FAM , FRS , DES , REFF , CSM , ARF , PDD,IMEI)
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD, IMEI)
    peut être que se sera la solution?

    A+

  18. #18
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Petite précision

    seul oEnr et oTable sont des variables venant d'un formulaire ou etat si j'ai bien compris.
    Le variable oEnr vient de la table Dossiers_incomplets, elle extraite dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    While Not oRst.EOF
            Set oEnr = oRst.Fields("REF")
    Et oTable est le nom de la table nouvellement créée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Création de la table temporaire
                DoCmd.RunSQL "CREATE TABLE Temp " _
                & "(REF TEXT, CA TEXT, CF TEXT, FAM TEXT, FRS TEXT, DES TEXT, REFF TEXT, CSM TEXT, ARF TEXT, PDD TEXT, IMEI TEXT);"
                'Renommer Table Temporaire par Num Mag
                DoCmd.Rename "" & oEnr & "_Dossiers_RR_Cogedem", acTable, "Temp"
                'Récupère le nom de la table
                oTable = "" & oEnr & "_Dossiers_RR_Cogedem"
    Le couper coller de la table Dossiers_incomplets vers nouvelle table, de(s) enregistrement(s) ne fonctionnent toujours pas avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "INSERT INTO " & oTable & " (REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD, IMEI) " _
                    & "SELECT (REF, CA, CF, FAM, FRS, DES, REFF, CSM, ARF, PDD, IMEI) " _
                    & "FROM Dossiers_incomplets WHERE REF='" & oEnr & "';"
    Pourtant mes champs sont identiques.

    Merci.

  19. #19
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    J'ai comparé les structure des tables Dossiers_incomplets et de la nouvelle table créée (754_dossiers_RR_Cogedem pour la première).
    Seules les tailles n'étaient pas identiques. Ce qui donne pour chaque table :

    REF Texte 255
    CA Texte 255
    CF Texte 255
    FAM Texte 255
    FRS Texte 255
    DES Texte 255
    REFF Texte 255
    CSM Texte 255
    ARF Texte 255
    PDD Texte 255
    IMEI Texte 255

    Il n'y a aucune restriction particulière.

    J'espère que cela suffit.

  20. #20
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    salut
    essayons ça pour voir:
    1/Créer la table par le code
    2/Créer et executer la req "INSERT INTO" manuellement;
    @+

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

Discussions similaires

  1. Problème de requête sql INSERT INTO
    Par momoh dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/02/2009, 16h58
  2. Problème requête sql : INSERT INTO
    Par bobosh dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2008, 10h43
  3. Requête SQL Insert Into
    Par jjg65 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/11/2007, 08h35
  4. [Requête + VBA] INSERT INTO autre base
    Par Zartak dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/05/2007, 14h29
  5. Probléme Insert into
    Par dellys2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/02/2007, 10h46

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