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 :

La commande INSERT INTO dans VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut La commande INSERT INTO dans VBA
    Bonjour à tous,

    J'ai réussi à utiliser la commande SELECT dans VBA, mais dès que j'essai d'utiliser une commande d'insertion il me met une erreur que le champ n'existe pas "Unknown column 'valeur du champ_1' in 'field list'.
    Le problème est qu'il prend les données que je souhaite mettre par des noms de champs. Si je met uniquement des chiffres ma requete fonctionne?
    Pourquoi?
    Comment y remédier ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
     Dim Text_SQL As String
    Dim id_tournoi As integer
    Dim champ_1 As String
    Dim champ_2 As String
     
        cnn.Open "ODBC;DATABASE=peofofo;DSN=peofofo;UID=root"
        champ_1 = ThisWorkbook.Sheets("Résultats").Cells(9, 1).Value
        champ_2 = ThisWorkbook.Sheets("Résultats").Cells(12, 1).Value
        Text_SQL = "INSERT INTO essai_table VALUES (null," & id_tournoi & " ," & champ_1 & ", " & champ_2 & ")"
        ' Exécution de la requête
        rst.Open Text_SQL, cnn
        cnn.Close   'Fermeture de la connection à la base de donnée

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonjour,


    si tes champs sont des chaines de caractéres il faut les encadrer de quotes : '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Text_SQL = "INSERT INTO essai_table VALUES (null," & id_tournoi & " ,'" & champ_1 & "', '" & champ_2 & "')"



    Jacques.

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci JackOuYA, le script fonctionne

    Mais est ce que j'utilise la bonne méthode pour insérer des données avec recordset ?

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

Discussions similaires

  1. Insert Into dans une table avec select
    Par smail25 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/12/2006, 13h06
  2. Syntaxe requete SQL insert into dans VBA
    Par @rkane dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/12/2006, 22h03
  3. syntaxe commande INSERT INTO
    Par hottnikks_79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2006, 13h52
  4. la commande insert into et le type serial
    Par nael_n dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/08/2006, 11h16
  5. [MySQL] insert into dans un for
    Par pimpmyride dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2005, 17h55

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