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 :

Renseignement BD avec connection ADODB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut Renseignement BD avec connection ADODB
    Bonjour,
    je me débat avec un problème depuis quelque temps et je ne m'en sort pas.

    Voila, à l'aide d'une connection ADODB avec un classeur excel, agencé en base de donnée, je renseigne la dite base de donnée avec des informations rentrés par l'utilisateur par l'intermédiaire d'un formulaire.

    L'orsque la commande sql est envoyée le message d'erreur "le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination" apparait.

    Je ne comprend pas la signification du message et étant novice, notament avec l'ADODB, je ne voit vraiment pas ce qui cloche.

    Je peux fournir du code si besoin.

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Je suppose que tu fais une requête INSERT.

    La syntaxe d'un insert est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into LaTable (Champ1, Champ2, Champ3) values (val1, val2, val3)
    Si tu ne précises pas la liste des champs à impacter (Champ1, Champ2, Champ3), la liste des values doit correspondre à TOUS les champs de la table.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    Bonjour,

    effectivement je fait bien une requête INSERT (suivant le tuto de SilkyRoad), mais appeler les champs (je pensait que les infos se renseignait dans l'ordre de leur saisie) voici un bout
    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
     
    strSQL = "INSERT INTO [" & Feuille & "$] " _
            & "VALUES ('" & Numdt & "', " & _
            "'" & refpiece & "', " & _
            "'" & Prodetsec & "', " & _
            "'" & Desi & "', " & _
            "'" & Progconc & "', " & _
            "'" & Rgdap & "', " & _
            "#" & Delaidemand & "#, " & _
            "#" & Delairetenu & "#, " & _
            "#" & Delaiobtenu & "#, " & _
            "'" & Libelledemande & "', " & _
            "'" & Docjoint & "', " & _
            "'" & Interlo1 & "', " & _
            "'" & Tpsestim & "', " & _
            "'" & Tpsrealise & "', " & _
            "'" & Avancement & "', " & _
            "'" & Visademande & "', " & _
            "#" & Datevisademand & "#, " & _
            "'" & Accordpourexec & "', " & _
            "#" & Dateaccordexec & "#, " & _
            "'" & Visaprog & "', " & _
            "#" & Datevisaprog & "#, " & _
            "#" & Datecreat & "#, " & _
            "'" & Interlo2 & "')"
        Cn.Execute strSQL
    Faut il que la base de donnée est l'entête des champs renseigné (ligne 1 du tableau excel)?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    J'ai reussi a faire fonctionner correctement le module ADO mais apparement l'importation des données est limitée à 255 characteres (et bien sur il m'en faudrait beaucoup plus !!!).

    Si quelqu'un a une idée pour ajouter des enregistrements dans un classeur fermé agencé comme une base de donnée et non limité a 255 characteres.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    J'espère que ce lien pourra t'aider

    http://support.microsoft.com/kb/189897/


    bonne soirée
    michel

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    Bonsoir,

    merci pour le lien (j'avais déjà été voir), mais cela ne m'aide pas plus, car l'application doit tourner sur plusieurs PC (dont je n'ai pas les droits administrateur) avec plusieurs utilisateurs.

    En attendant de trouver mieux (si il y a mieux !!!), j'ai pris le parti de scinder le champs en plusieurs conteneurs et de les ajouter à la fin de ligne dans ma base de donnée. Ensuite, lorsque je récupère le contenu de la base de donnée je concatène les multiples entrées en une pour l'afficher.

    Le problème dans cette solution (provisoire?) c'est que ma base de donnée n'en n'ai plus vraiment une car je vais me retrouver avec des entrées plus ou moins longues.

    Pour finir je tenais à te remercier pour ton tuto, qui est vraiment excellent, et grâce auquel j'ai réussi à faire "presque " ce que je voulais.
    Merci quand même pour ta réponse.

Discussions similaires

  1. problème avec connection scp
    Par Rayley dans le forum Maven
    Réponses: 1
    Dernier message: 09/08/2006, 15h08
  2. [Debutant] connection ADODB et remplissage de feuille
    Par in dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2006, 16h41
  3. Problème cases à cocher avec connection Mysql
    Par cams dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 01/12/2005, 14h13
  4. [socket] Probleme avec connect
    Par sorry60 dans le forum Réseau
    Réponses: 12
    Dernier message: 16/11/2005, 22h01
  5. Réponses: 11
    Dernier message: 30/08/2005, 10h50

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