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 :

erreur de syntaxe dans l'instructiuon insert into


Sujet :

Access

  1. #1
    Membre régulier Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Points : 103
    Points
    103
    Par défaut erreur de syntaxe dans l'instructiuon insert into
    Bonjour a tous

    Voici le programme qui me permet d'enregistrer les données de mon formulaire dans une table de ma BD mais aussi d'enregistrer le suivi des opérations dans ma table Audit.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    Sub Commande36_Click()
    On Error GoTo Err_Commande36_Click
     
        '--------------------------------------------------------------------------------------------------------------------------------------------------------------------
     
        Dim connex As ADODB.Connection
        Dim recset As ADODB.Recordset
        Dim MonSQL As String
        Dim requete As String
        Dim strsortie As Integer
        Dim stDocName As String
        Dim variable As String
     
        MonSQL = "SELECT Count([change_control].[num_change])AS nb_date FROM change_control WHERE year([change_control].[date_demande])=" & Year(date_dem) & "And month([change_control].[date_demande])=" & Month(date_dem) & "And day([change_control].[date_demande])=" & Day(date_dem) & "And ([change_control].[num_atelier])='" & num_at & "';"
        Set connex = CurrentProject.Connection
        Set recset = New ADODB.Recordset
        recset.Open MonSQL, connex
        strsortie = recset.Fields("nb_date")
        If strsortie = 0 Then
            num_change = num_atelier & "/" & Year(date_dem) & "-" & Month(date_dem) & "-" & Day(date_dem) & "/"
        Else
            strsortie = strsortie + 1
            num_change = num_atelier & "/" & Year(date_dem) & "" & Month(date_dem) & "" & Day(date_dem) & "/" & strsortie
        End If
        recset.Close
        variable = num_change
        If num_lot <> "" Then
            num_lot = Replace&#40;num_lot, " ", ""&#41;
        End If
        connex.Close
        Set connex = Nothing
        Set recset = Nothing
     
        DoCmd.GoToRecord , , acNewRec
        MsgBox " Enregistrement du formulaire change control réussi avec succès !!!"
     
        '-------------- impression -----------------------------------------------------
        SupprimerRequete "req_etat_change_direct"
        requete = "SELECT DISTINCTROW &#91;change_control&#93;.&#91;num_change&#93;, &#91;change_control&#93;.&#91;num_atelier&#93;, &#91;change_control&#93;.&#91;date_demande&#93;, &#91;change_control&#93;.&#91;nom_initiateur&#93;, &#91;atelier&#93;.&#91;nom_resp&#93;, &#91;change_control&#93;.&#91;nom_produit&#93;, &#91;change_control&#93;.&#91; code&#93;, &#91;change_control&#93;.&#91;num_lot&#93;, &#91;change_control&#93;.&#91;description&#93;, &#91;change_control&#93;.&#91;raison&#93; FROM atelier INNER JOIN change_control ON &#91;atelier&#93;.&#91;num_atelier&#93;=&#91;change_control&#93;.&#91;num_atelier&#93; WHERE &#91;change_control&#93;.&#91;num_change&#93;='" & variable & "';"
        CreerRequete "req_etat_change_direct", requete
     
        stDocName = "etat_change_control_direct"
        DoCmd.OpenReport stDocName, acNormal
        MsgBox " La demande de change control a bien été imprimée !!!"
        '-------------------------------------------------------------------------------
     
        '--------------- audit trail ---------------------------------------------------
        Dim connex1 As ADODB.Connection
        Dim recset1 As ADODB.Recordset
        Dim MonSQL1 As String
     
        MonSQL1 = "INSERT INTO audit &#40;qui,quand,action&#41; VALUES &#40;'" & User_id & "','" & date & "','demande de change control'&#41;;"
        MsgBox MonSQL1
        Set connex1 = CurrentProject.Connection
        Set recset1 = New ADODB.Recordset
        recset1.Open MonSQL1, connex1
        '-------------------------------------------------------------------------------
     
    Exit_Commande36_Click&#58;
        Exit Sub
     
    Err_Commande36_Click&#58;
        MsgBox err.description
        Resume Exit_Commande36_Click
     
        recset1.Close
        connex1.Close
        Set connex1 = Nothing
        Set recset1 = Nothing
     
    End Sub
    le programme fonctionne mais le soucis vient de la partie audit trail, j'affiche ma requête et elle est correcte mais lors de l'exécution j(ai un message d'erreur de syntaxe.

    merci de m'éclairer.

  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 360
    Points
    1 360
    Par défaut
    Remplace l'affichage par un debug.print et essaie d'exécuter ta requète après l'avoir récupéré dans la fenêtre de débogage.

    Mais à priori, ta requète devrait plutôt être ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSQL1 = "INSERT INTO audit &#40;qui,quand,action&#41; VALUES &#40;'" & User_id & ", now&#40;&#41; , 'demande de change control'&#41;"
    [Access] Les bases du débogage => ici

  3. #3
    Membre régulier Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Points : 103
    Points
    103
    Par défaut
    now() et date() c'est équivalent.
    ma requête est toujours correcte car lorsque j'écris le résultat de celle ci dans une requête access la ligne est bien ajoutée.

  4. #4
    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 360
    Points
    1 360
    Par défaut
    Ouaip, sauf que ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSQL1 = "INSERT INTO audit &#40;qui,quand,action&#41; VALUES &#40;'" & User_id & "','" & date & "','demande de change control'&#41;;"
    et ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonSQL1 = "INSERT INTO audit &#40;qui,quand,action&#41; VALUES &#40;'" & User_id & "', now&#40;&#41; , 'demande de change control'&#41;"
    c'est pas pareil.
    [Access] Les bases du débogage => ici

  5. #5
    Membre régulier Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Points : 103
    Points
    103
    Par défaut
    répondre c'est pas pareil mais ce que je voulais dire c'est que j'ai le même message d'erreur qui s'affiche.

  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 360
    Points
    1 360
    Par défaut
    Et pourquoi tu fais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    '--------------- audit trail --------------------------------------------------- 
        Dim MonSQL1 As String 
     
        MonSQL1 = "INSERT INTO audit &#40;qui,quand,action&#41; VALUES &#40;'" & User_id & "', now&#40;&#41; , 'demande de change control'&#41;"
        debug.print  MonSQL1 
        CurrentDb.Execute MonSQL1, dbFailOnError
        '-------------------------------------------------------------------------------
    Si ca plante, tu récupères le SQL et tu l'éxécutes dans une requète.
    [Access] Les bases du débogage => ici

  7. #7
    Membre régulier Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Points : 103
    Points
    103
    Par défaut
    merci ta solution est meilleure que la mienne.
    ça fonctionne.

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

Discussions similaires

  1. [Débutant] Erreur de syntaxe dans l'instruction INSERT INTO
    Par IL-MAFIOSO dans le forum VB.NET
    Réponses: 15
    Dernier message: 21/03/2013, 15h54
  2. [AC-2007] Erreur de syntaxe dans l'instruction INSERT INTO
    Par DébutantAccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/02/2013, 19h45
  3. OleDbException -{"Erreur de syntaxe dans l'instruction INSERT INTO."}
    Par daniel.moreda dans le forum Framework .NET
    Réponses: 1
    Dernier message: 27/09/2011, 17h38
  4. Erreur de syntaxe dans l'instruction INSERT INTO
    Par doolar dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2008, 16h37
  5. Erreur de syntaxe dans l'instruction INSERT INTO
    Par logiciel_const dans le forum Bases de données
    Réponses: 8
    Dernier message: 19/03/2008, 11h57

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