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

VB.NET Discussion :

Insert into : requête sur un fichier excel vb.net oledb


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut Insert into : requête sur un fichier excel vb.net oledb
    Bonjour,

    j'ai un tableau tab(n)

    que je remplis dans une boucle
    je voudrais insérer les valeurs de ce tableau dans la dernière colonne ma feuille excel test,
    genre :
    tab={a,b,c} =>
    colonne G:
    a
    b
    c


    en sachant que les autres colonnes sont remplies

    j'ai utilisé cette requete pour tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.CommandText = "insert into [test$](F7) values(tab[i])" 'F7=colonne G
    mais ça marche pas, VS m'envoie ce message :
    Additional information: L’instruction INSERT INTO contient le nom de champ inconnu suivant : « F7 ». Assurez-vous que vous avez correctement saisi le nom, puis recommencez l’opération.

    pourriez vous m'aider svp ?

    merci d'avance

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    si les autres colonnes sont "remplies" ce ne serait pas un update plutôt qu'un insert ?
    Et je suis pas expert en VB mais en mettant [I]tab tel quel dans ta chaîne j'ai des doutes sur le fait qu'il soit interprété.

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Salut,

    si les autres colonnes sont "remplies" ce ne serait pas un update plutôt qu'un insert ?
    effectivement, elles sont remplies sauf la dernière où je voudrais insérer, c'est pour cela j'ai pensé à INSERT INTO ...


    Citation Envoyé par jopopmk Voir le message
    Et je suis pas expert en VB mais en mettant [I]tab tel quel dans ta chaîne j'ai des doutes sur le fait qu'il soit interprété
    pour le moment je veux juste tester si je pourrai ajouter des données dans la toute dernière colonne de ma feuille Excel

    EN GROS, j'ai un tableau de n case, et je voudrais mettre ses données dans la dernière colonnes (la première case du tableau correspondra à la première cellule de cette colonne G etc ...)

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Re,

    avec une requête du genre ça devrait faire le taff (pour remplir la colonne 7 -soit G- de la ligne 2) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string rqt = "UPDATE [Sheet1$A2:G2] SET F7 = 'value'";
    Si on généralise à une ligne donnée avec comme source un tableau de valeurs ça pourrait donner un truc comac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string rqt = "UPDATE [Sheet1$A" + ligne + ":G" + ligne + "] SET F7  = '" + tab[ligne] + "'";
    Après test, il semble que si cette colonne ne possède aucune valeur alors OleDb ne voudra pas la considérer.
    En ajoutant une valeur à la première ligne pour cette colonne (qui sera écrasée par la suite) ça fonctionne.

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Si on généralise à une ligne donnée avec comme source un tableau de valeurs ça pourrait donner un truc comac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string rqt = "UPDATE [Sheet1$A" + ligne + ":G" + ligne + "] SET F7  = '" + tab[ligne] + "'";
    Après test, il semble que si cette colonne ne possède aucune valeur alors OleDb ne voudra pas la considérer.
    En ajoutant une valeur à la première ligne pour cette colonne (qui sera écrasée par la suite) ça fonctionne.
    je vais l'essayer maintenant et je te tiendrai au courant

    merci

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    Citation Envoyé par jopopmk Voir le message

    Après test, il semble que si cette colonne ne possède aucune valeur alors OleDb ne voudra pas la considérer.
    En ajoutant une valeur à la première ligne pour cette colonne (qui sera écrasée par la suite) ça fonctionne.
    effectivement, j'ai du remplir la colonne en question pour que je puisse insérer mes valeurs mais ç marche

    vu que je dois offrir ce tableau Excel à un client j'aimerais bien laisser la main à l'application, cad remplir cette fameuse colonne automatiquement puis faire le update, qu'est ce t'en penses ??

  7. #7
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Citation Envoyé par progami Voir le message
    effectivement, j'ai du remplir la colonne en question pour que je puisse insérer mes valeurs mais ç marche
    Suffit de remplir la colonne pour la première ligne, c'est toujours ça de gagné.

    Citation Envoyé par progami Voir le message
    vu que je dois offrir ce tableau Excel à un client j'aimerais bien laisser la main à l'application, cad remplir cette fameuse colonne automatiquement puis faire le update, qu'est ce t'en penses ??
    J'en pense que c'est une très bonne idée mais que là je sais pas comment faire
    J'essaie de jeter un oeil

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    J'en pense que c'est une très bonne idée mais que là je sais pas comment faire
    J'essaie de jeter un oeil
    je ferrai pareil de mon coté et je tiendrai au courant moi aussi

    merci jopopmk

  9. #9
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Alors il existe bien une méthode pour ajouter une nouvelle colonne.
    Cela consiste à faire un CREATE TABLE avec le nom de ton sheet et la description de tes n+1 colonnes.
    Par contre j'ai pas trouvé comment faire fonctionner ça proprement avec un sheet sans en-tête.
    (là ça me supprime les info de la première ligne pour les remplacer par des headers).

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Alors il existe bien une méthode pour ajouter une nouvelle colonne.
    Cela consiste à faire un CREATE TABLE avec le nom de ton sheet et la description de tes n+1 colonnes.
    Par contre j'ai pas trouvé comment faire fonctionner ça proprement avec un sheet sans en-tête.
    (là ça me supprime les info de la première ligne pour les remplacer par des headers).
    mmmm je vois,
    dans ce cas, c'est comme s'il faut faire une concaténation entre la nouvelle table et la feuille excel

  11. #11
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Pour que tu vois où ça coince voilà ce que j'ai fait :
    * j'ai un fichier Excel avec deux colonnes (A et B) et 5 lignes (1 à 5) dans un classeur appelé SheetOne.
    * j'ai fais la requête create suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string rqt = "CREATE TABLE [SheetOne$] (F1 Text, F2 Text, F3 Text)";
    * j'ai fait la requête d'update qu'on a vu plus haut (pour la colonne C dans mon cas, soit F3).

    Résultat :
    * ma troisième colonne est bien remplie avec les bonnes valeurs,
    * malheureusement ma première ligne se retrouve avec les valeurs "F1", "F2" et "F3".

    PS : si tes colonnes sont nommées (première ligne du fichier correspondant aux en-têtes) tu ne devrais pas avoir de souci avec cette méthode. Sinon il va falloir creuser le sujet ou trouver une autre solution.

  12. #12
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 78
    Par défaut
    [QUOTE=jopopmk;8429350]

    PS : si tes colonnes sont nommées (première ligne du fichier correspondant aux en-têtes) tu ne devrais pas avoir de souci avec cette méthode. Sinon il va falloir creuser le sujet ou trouver une autre solution.[/QUOTE

    Pour le moment je n'ai pas mis des en têtes mais j'ai la possibilité de les rajouter...

    La je vais laisser cette partie jusqu'à la fin pour augmenter les performances de l'application , mais t'as répondu comme il faut à ma qst
    et je te remercie infiniment

    je vais entamer les autres parties vu que je dois donner l'application à mon client

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

Discussions similaires

  1. insert into : requete sur un tableau excel
    Par progami dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/11/2015, 16h11
  2. [XL-2010] Exécuter une requête sur un fichier excel placé dans une GED sharepoint
    Par fanny35000 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 24/04/2015, 10h40
  3. Requêtes sur un fichier Excel ?
    Par jojo86 dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/08/2012, 00h50
  4. [VBA] Requête SQL sur un fichier excel ?
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2006, 23h06
  5. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53

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