1. #1
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    mai 2005
    Messages
    823
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : mai 2005
    Messages : 823
    Points : 864
    Points
    864

    Par défaut Problème de OleDbConnection avec excel suite au passage a office 365.

    Bonjour les codeurs,

    Ca fait un petit moment que je n'ai pas poster ici...

    Voila je développe une petite application en VB.net qui a pour but de générer une liste qu'on sélectionne dans un datagridview qui est rempli au préalable via un oledbconnection.

    Il y avait une autre fonctionnalité dans ce programme, l'envoi de mail. Mais voila j'ai upgradé vers office365. Et depuis la connexion oledb ne fonctionne plus... Pour l'envoi de mail, j'ai trouvé la solution.

    Voila un bout de code où suite à un changement de valeur d'un combobox (avec le nom de feuille excel) je rempli un datagridview.

    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
    Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
            Try
                Dim Myconnection As System.Data.OleDb.OleDbConnection
                Dim Dataset As System.Data.DataSet
                Dim BdataSet As New BindingSource
                Dim Mycommand As System.Data.OleDb.OleDbDataAdapter
                Dim path As String = "C:\SPC\SPC.xlsx"
     
                Myconnection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
                Mycommand = New OleDb.OleDbDataAdapter("select * from [" + ComboBox2.Text + "$B:C]", Myconnection)
     
                Dataset = New System.Data.DataSet
                Mycommand.Fill(Dataset)
                BdataSet.DataSource = Dataset.Tables(0)
                DataGridView1.DataSource = Dataset.Tables(0)
     
                Myconnection.Close()
            Catch ex As System.Exception
                MsgBox("Le fichier de pièce détachées n'est pas sur votre ordinateur." + vbCrLf + "Connectez vous à internet et relancer ce logiciel.", MsgBoxStyle.Critical)
            End Try
     
        End Sub
    Alors suite à ce code jusqu'à la ligne 10, je tombe directement dans l'exception ligne 18.... (sans passer par les lignes 12 à 15). Alors que ça marchait bien juste avant l'upgrade vers office365.

    Alors est ce qu'il est possible d'utiliser toujours ce oledbconnection avec excel 16.etc?


    Merci beaucoup.

    @Modo, si vous savez comment mieux formuler le nom du sujet... je compte sur vous.

    Parp1.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  2. #2
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    3 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 3 864
    Points : 7 894
    Points
    7 894
    Billets dans le blog
    18

    Par défaut

    Citation Envoyé par parp1 Voir le message
    Bonjour les codeurs,


    Alors suite à ce code, je tombe directement dans l'exception.
    Le devin de service a dû s'absenter et le manque de détails (ligne en cause et message de l'exception) n'aide en rien...

    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    À force de vouloir considérer les utilisateurs comme des imbéciles patentés, on risque de se mettre dans le trouble.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    mai 2005
    Messages
    823
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : mai 2005
    Messages : 823
    Points : 864
    Points
    864

    Par défaut

    Bonjour, merci pour ta réponse et désolé pour le manque d'informations.

    J'ai donc édité mon message initial et j'y ai indiqué les lignes de code parcourue par mon programme.

    En fin de compte il tente de faire la connexion mais si elle échoue, je vais dans l'exception du try catch. Et c'est ce qui se passe.

    Je ne vois pas pourquoi le changement vers office 365 pose problème. (si j'essaye ce code sur une machine avec excel 2003 ou 2010 ça roule).

    Merci pour ton aide.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  4. #4
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    mai 2005
    Messages
    823
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : mai 2005
    Messages : 823
    Points : 864
    Points
    864

    Par défaut

    J'ai remplacé le code de connexion original par celui disponible dans le blog de Hinault Romaric Donfac.

    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
     
    Try
                Dim path As String = "C:\SPC\SPC.xlsx"
                Dim dat As DataSet
                dat = New DataSet
                'déclaration et utilisation d'un OLeDBConnection 
                Using Conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")
                    'Conn.Open()
                    'déclaration du DataAdapter 
                    'notre requête sélectionne toute les cellule de la Feuil1 
                    Using Adap As OleDbDataAdapter = New OleDbDataAdapter("select * from [" + ComboBox2.Text + "$B:C]", Conn)
                        'Chargement du Dataset 
                        Adap.Fill(dat)
                        'On Binde les données sur le DGV 
                        DataGridView1.DataSource = dat.Tables(0)
                    End Using
                    'le end using libère les ressources 
                End Using
    Ca marche maintenant... va savoir pourquoi..
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    mai 2005
    Messages
    823
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : mai 2005
    Messages : 823
    Points : 864
    Points
    864

    Par défaut

    Citation Envoyé par parp1 Voir le message

    Ca marche maintenant... va savoir pourquoi..
    Je sais pourquoi ça fonctionnait... En effet excel était ouvert, et excel me demandait justement de activer un lien ... (je pense que c'est le lien OLEDB...)

    J'aimerai que ça fonctionne sans qu'excel soit forcément ouvert. Le soft doit pouvoir accéder a un fichier excel sans qu'excel soit ouvert?

    Merci.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

Discussions similaires

  1. Petit problème de VB6 avec excel
    Par petit rabot dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 20/11/2010, 12h04
  2. problème de Threads avec Excel
    Par ooxoo dans le forum MFC
    Réponses: 3
    Dernier message: 15/05/2008, 23h55
  3. problème de conversion avec dateadd - suite et fin
    Par Bourezak dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 31/01/2008, 14h57
  4. Problème de déploiment avec Excel et Delphi
    Par wbagg2 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 18/01/2006, 23h59

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