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

Macros et VBA Excel Discussion :

Problème avec requête SQL INSERT TO sous VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Automatisme, robotique et info indus
    Inscrit en
    Avril 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Automatisme, robotique et info indus
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 49
    Par défaut Problème avec requête SQL INSERT TO sous VBA Excel
    Bonjour,

    J'ai un petit soucis avec une requête SQL "INSERT TO", lorsque je l’exécute j'ai un message d'erreur m'indiquant qu'il me manque un opérateur.
    Ma table comporte 3 champs, 2 au format texte, le dernier au format date.

    Lorsque j'écris les valeurs en dur dans la requête, cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES ('test', 'test',#12/09/2016 10:00:00#)"
    Par contre, avec ce code, ça bloque.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function WriteFileInfo(ByVal strFilePath As String, ByVal strFileName As String, ByVal dtDateLastModified As Date)
     
         cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES ('" & strFilePath & "', '" & strFileName & "', #" & dtDateLastModified & "#)"
    D'où peut venir le problème?

    Merci.

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    C'est la date ! Quand on écrit les # sont là pour indiquer que c'est un format date. Je m'emmêle toujours les patts avec les dates, mais essaie déjà d'écrire la même chose sans les #.

  3. #3
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    En passant ...
    Essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES ('" & strFilePath & "', '" & strFileName & "', '#" & dtDateLastModified & "#')"

  4. #4
    Membre averti
    Homme Profil pro
    Automatisme, robotique et info indus
    Inscrit en
    Avril 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Automatisme, robotique et info indus
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 49
    Par défaut
    Citation Envoyé par vttman Voir le message
    En passant ...
    Essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES ('" & strFilePath & "', '" & strFileName & "', '#" & dtDateLastModified & "#')"
    Ça ne passe pas non plus, j'ai ce message d'erreur.

    Nom : Screenshot_2.png
Affichages : 498
Taille : 17,2 Ko

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    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
    Sub test()
    Debug.Print TrouveTypeSql("")
    Debug.Print TrouveTypeSql(strFileName)
    Debug.Print TrouveTypeSql("toto")
    Debug.Print TrouveTypeSql(Date)
    Debug.Print TrouveTypeSql(Now)
    Debug.Print TrouveTypeSql(10.5)
     
    SQL= "INSERT INTO Files (Path, File, DateLastModified) VALUES (" & TrouveTypeSql(strFilePath) & "," & TrouveTypeSql(strFileName) & "," & TrouveTypeSql(dtDateLastModified) & ")"
    Debug.Print SQL
    cnn.Execute  SQL
    End Sub
     
     
    Function TrouveTypeSql(V)
    TrouveTypeSql = Trim("" & V)
    If Trim("" & TrouveTypeSql) = "" Then TrouveTypeSql = "Null": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 And InStr(TrouveTypeSql, ":") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd hh:mm") & "#": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd") & "#": Exit Function
    If IsNumeric(Replace(TrouveTypeSql, ".", ",")) = True Then TrouveTypeSql = Replace(TrouveTypeSql, ",", "."): Exit Function
    TrouveTypeSql = "'" & Replace(TrouveTypeSql, "'", "''") & "'"
    End Function
    Dernière modification par Invité ; 31/03/2017 à 10h53.

  6. #6
    Membre averti
    Homme Profil pro
    Automatisme, robotique et info indus
    Inscrit en
    Avril 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Automatisme, robotique et info indus
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 49
    Par défaut
    Merci dysorthographie, ton code fonctionne.

    Par contre, maintenant j'aimerai bien comprendre pourquoi ton écriture fonctionne et pas la mienne.

    Quelle différence y-a-t-il entre écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES ('" & strFilePath & "', '" & strFileName & "', '#" & dtDateLastModified & "#')"
    et ce que fait ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cnn.Execute "INSERT INTO Files (Path, File, DateLastModified) VALUES (" & 'strFilePath ' & ", " & 'strFilePath' & "', " & #dtDateLastModified# & ")"

  7. #7
    Invité
    Invité(e)
    Par défaut
    il faut respecter le format des données acceptable par SQL!
    Null si il n't a pas de valeur, Format international si date point en séparateur décimale etc...

  8. #8
    Membre averti
    Homme Profil pro
    Automatisme, robotique et info indus
    Inscrit en
    Avril 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Automatisme, robotique et info indus
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 49
    Par défaut
    Oki, merci.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Debug.Print TrouveTypeSql("")
    Debug.Print TrouveTypeSql(strFileName)
    Debug.Print TrouveTypeSql("L'éléphant")
    Debug.Print TrouveTypeSql(Date)
    Debug.Print TrouveTypeSql(Now)
     Debug.Print TrouveTypeSql("10,5")
    regardes les valeurs qui s'affiche dans le debud raccourci clavier [Ctrl] + [G]
    Images attachées Images attachées  
    Dernière modification par Invité ; 31/03/2017 à 13h42.

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

Discussions similaires

  1. Problème avec requête SQL sous Oracle8I
    Par masterdash dans le forum SQL
    Réponses: 10
    Dernier message: 02/03/2016, 11h59
  2. Problème avec requête SQL dans VBA
    Par Mimisio dans le forum VBA Access
    Réponses: 10
    Dernier message: 13/07/2007, 11h00
  3. [SQL] problème avec requête sql
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/05/2007, 11h58
  4. probléme avec requête SQL
    Par richard60 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/03/2007, 18h18
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41

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