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 :

Excel Problème de reconnaissance des valeurs


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Points : 71
    Points
    71
    Par défaut Excel Problème de reconnaissance des valeurs
    Bonjour,
    Dans le cadre d'un développement SSIS , je dois modifier un code en VB.Net qui met à jour le contenu d'un fichier Excel

    Pour se faire, des lignes sont numerotées et dans une boucle avec un compteur, je met a jour la ligne dont WHERE F1=compteur

    le probleme est que, dès qu'il s'agit d'un numero, deux cas de figures se presentes (j'ai simplifié un exemple de requete):

    si j'ecris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd.CommandText = "UPDATE [Feuil1$] SET F2='TEST' WHERE F1 ='1'"
    cmd.ExecuteNonQuery()
    avec des cotes entre le 1, il ne reconnait pas la valeur, elle n'existe pas.


    si j'ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd.CommandText = "UPDATE [Feuil1$] SET F2='TEST' WHERE F1 =1"
    cmd.ExecuteNonQuery()
    donc sans les cotes, il me pete dans les doigts

    Par contre, si a la place des numeros de lignes, je met du texte, cela fonctionne

    voici ma chaine de connexion au fichier excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" + Dts.Variables("SOURCE").Value.ToString + strFilename & _
    ";Extended Properties=""Excel 8.0;HDR=NO"""

    Donc pour résumer, dans mon fichier excel, j'ai des une colonne avec des lignes numérotées.
    je veux juste pouvoir modifier la ligne X avec des données que j'ai dans un dataset.

    Çà fait des lustres que je stagne la dessus, j'avoue commencer a craquer.
    J'ai farfouillé sur le net, il y a bien une méthode qui consiste a ajouter IMEX=1, mais cela passe le pilote en mode d'import. Donc oui, avec un select je récupère bien mes numéros, mais je ne peux pas faire des updates.

    Y a peut être pas de solution non plus, mais si c'est le cas, dites le moi, ça m’évitera de me taper la tête contre les murs

    please, help !

    Merci a tous

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Points : 71
    Points
    71
    Par défaut
    je précise que j'ai testé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.ACE.OLEDB.12.0
    cela marche mais l'ennui est que sur le serveur cible ou sera exécuté le code, il n'est pas certain que le pilote soit installé (Environnement 2005).

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    voir le FAQ

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    essaies ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string SqlCommand="UPDATE [Feuil1$] SET F2='TEST' WHERE F1 =@F"
     
    SqlCommand command = new SqlCommand(commandText, connection);
            command.Parameters.Add("@F", SqlDbType.Int);
            command.Parameters["@F"].Value = 1;
    cmd.ExecuteNonQuery()

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Points : 71
    Points
    71
    Par défaut
    OK,
    je vais convertir cela en VB puis tester

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Points : 71
    Points
    71
    Par défaut
    Bon, je n'y arrive pas avec cette methode

    Je vais demander une migration du pilote sur le serveur, et utiliser la version 12.0

    Merci encore pour ton aide

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    Essayez de formater la colonne concernée en nombre. (Clic droit sur la colonne --> Format cellule --> etc...
    Et garder votre seconde requête sans les apostrophes autour du 1.
    A voir ...

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 20/11/2007, 18h28
  2. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  3. Problème pour forcer des valeurs d'un tableau
    Par n][co dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/04/2007, 20h59
  4. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29
  5. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08

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