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

Windows Forms Discussion :

Reprise de développement applicatif VB.NET et EXCEL


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut Reprise de développement applicatif VB.NET et EXCEL
    Bonjour à tous,

    Je me retrouves à récupérer le développement en VB.NET d'une application qui est en dev depuis 1 an maintenant. Le but est de générer des rapports excel via une base Mysql. Jusque là tout va bien mais à la génération du rapport j'ai l'erreur suivante :

    The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

    Si j'en crois les forum c'est un problème d'accès au classeur ou la feuille Excel, mais je ne trouve pas où ça coince. Je vous joints le code qui pose souci.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
     
    'on peut lancer le rapport
     
            Dim requete As String = ""
     
            If CheckBox1.Checked = True Then
                'On récupère les personnes ayant ce référentiel
                Dim requete2 As String = "SELECT     `evalution_complete`.`Matricule`,     `evalution_complete`.`ENTREPRISE` FROM     `userdb41`.`evalution_complete` where   " & SELECT_ENT & " and year(`evalution_complete`.`DATE`) = '" & cmb_annee.Text & "' and `evalution_complete`.`COMP_PURE` IN (SELECT   `comp`.`NOM` FROM          userdb41.association_vue,             `userdb41`.`comp`,             `userdb41`.`view`         where             `view`.`idVIEW` = `association_vue`.`id_view`                 and `comp`.`ID` = `association_vue`.`id_comp`                 and `view`.`idVIEW` = '" & Me.LV_1.Items(LV_1.SelectedIndices(0)).Text & "') group by `evalution_complete`.`Matricule` having count(`evalution_complete`.`COMP_PURE`) >=  (SELECT count(*) FROM userdb41.association_vue where id_view='" & Me.LV_1.Items(LV_1.SelectedIndices(0)).Text & "') "
                'Dim requete3 As String = "SELECT `evalution_complete`.`Matricule`, `evalution_complete`.`SECTEUR`, `evalution_complete`.`DATE`, `evalution_complete`.`COMP_PURE`, `evalution_complete`.`DOM_COMP_PURE`, `evalution_complete`.`EVALUTION`, `evalution_complete`.`ENTREPRISE` FROM  `userdb41`.`evalution_complete`  where " & SELECT_ENT & " and  year(`evalution_complete`.`DATE`)='" & cmb_annee.Text & "' and `evalution_complete`.`COMP_PURE` IN (SELECT             `comp`.`NOM`         FROM             userdb41.association_vue,             `userdb41`.`comp`,              `userdb41`.`view`         where             `view`.`idVIEW` = `association_vue`.`id_view`                 and `comp`.`ID` = `association_vue`.`id_comp`                 and  `view`.`idVIEW` = '" & Me.LV_1.Items(LV_1.SelectedIndices(0)).Text & "') "
                Dim file_destination = Form1.chemin_travail & "\Rapport Personnalisé.xlsx"
     
                get_model("liste_des_competences_de_l_entreprise.xlsx", "\Rapport Personnalisé.xlsx")
     
                'on ouvre le fichier excel
                Lbl_Progression.Text = "Ouverture d'Excel"
                Lbl_Progression.Refresh()
                Dim AppExcel As New Microsoft.Office.Interop.Excel.Application
                Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook
                Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet
                wbExcel = AppExcel.Workbooks.Open(file_destination)
                wsExcel = wbExcel.Worksheets("Source")
                Me.Cursor = Cursors.WaitCursor
     
     
                'Try
                Dim connection_entreprise2 As MySqlConnection = GetConnect()
                connection_entreprise2.Open()
     
                'On execute la requete
     
     
                Dim CmdSql_entreprise2 As New MySqlCommand(requete2, connection_entreprise2)
                Dim DrSql_entreprise2 = CmdSql_entreprise2.ExecuteReader()
     
     
     
                While (DrSql_entreprise2.Read())
                    'maintenant on lance le rapport pour chaque personne ayant ce référentiel
     
                    requete = "SELECT `evalution_complete`.`Matricule`, `evalution_complete`.`SECTEUR`, `evalution_complete`.`DATE`, `evalution_complete`.`COMP_PURE`, `evalution_complete`.`DOM_COMP_PURE`, `evalution_complete`.`EVALUTION`, `evalution_complete`.`ENTREPRISE` FROM  `userdb41`.`evalution_complete`  where `evalution_complete`.`Matricule`='" & DrSql_entreprise2.GetString(0).Replace("'", "\'") & "' and `evalution_complete`.`ENTREPRISE`='" & DrSql_entreprise2.GetString(1).Replace("'", "\'") & "' and  year(`evalution_complete`.`DATE`)='" & cmb_annee.Text & "' and `evalution_complete`.`COMP_PURE` IN (SELECT             `comp`.`NOM`         FROM             userdb41.association_vue,             `userdb41`.`comp`,              `userdb41`.`view`         where             `view`.`idVIEW` = `association_vue`.`id_view`                 and `comp`.`ID` = `association_vue`.`id_comp`                 and  `view`.`idVIEW` = '" & Me.LV_1.Items(LV_1.SelectedIndices(0)).Text & "') "
     
     
                    Try
                        'Ouverture de la connexion
                        Dim connection_entreprise As MySqlConnection = GetConnect()
                        connection_entreprise.Open()
     
                        'On execute la requete
                        Dim CmdSql_entreprise As New MySqlCommand(requete, connection_entreprise)
     
                        Dim DrSql_entreprise = CmdSql_entreprise.ExecuteReader()
                        Dim ligne_courante = 2
     
                        Lbl_Progression.Text = "Mise en place des informations, cette opération peut prendre plusieurs minutes.."
                        Lbl_Progression.Refresh()
     
                        'On le remplit avec la requete
                        While (DrSql_entreprise.Read())
                            Lbl_Progression.Text = DrSql_entreprise.GetString(0) & ":" & DrSql_entreprise.GetString(3)
                            Lbl_Progression.Refresh()
                            wsExcel.Cells(ligne_courante, 1).value = DrSql_entreprise.GetString(0)
                            wsExcel.Cells(ligne_courante, 2).value = DrSql_entreprise.GetString(1)
                            wsExcel.Cells(ligne_courante, 3).value = DrSql_entreprise.GetString(2)
                            wsExcel.Cells(ligne_courante, 4).value = DrSql_entreprise.GetString(3)
                            wsExcel.Cells(ligne_courante, 5).value = DrSql_entreprise.GetString(4)
                            wsExcel.Cells(ligne_courante, 6).value = DrSql_entreprise.GetString(5)
                            Select Case DrSql_entreprise.GetString(5)
                                Case "0"
                                    wsExcel.Cells(ligne_courante, 7).value = "0- Non Concerné"
                                Case "1"
                                    wsExcel.Cells(ligne_courante, 7).value = "1- Ne maitrise pas"
                                Case "2"
                                    wsExcel.Cells(ligne_courante, 7).value = "2- A perfectionner"
                                Case "3"
                                    wsExcel.Cells(ligne_courante, 7).value = "3- Maitrise"
                                Case "4"
                                    wsExcel.Cells(ligne_courante, 7).value = "4- Expert"
                            End Select
                            ligne_courante += 1
                            wbExcel.RefreshAll()
     
                        End While
     
                        connection_entreprise.Close()
                        connection_entreprise.Dispose()
                        connection_entreprise = Nothing
     
                        Lbl_Progression.Text = "Enregistrement du fichier Excel"
                        wbExcel.RefreshAll()
                        wbExcel.Save()
                        AppExcel.Quit()
                        AppExcel = Nothing
                        clearExcel()
     
                    Catch ex As Exception
                        MsgBox(ex.Message)
                        Clipboard.Clear()
                        clearExcel()
                        wbExcel = Nothing
                        Me.Cursor = Cursors.Default
                    End Try
     
                End While
     
                Try
     
                Catch ex As Exception
     
                    Lbl_Progression.Text = "Enregistrement du fichier Excel"
                    Me.Cursor = Cursors.Default
                    Lbl_Progression.Text = "Traitement terminé"
                End Try
    Un énorme merci par avance à qui voudra bien me répondre pour me permettre d'avancer.

  2. #2
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Par défaut
    salut !
    est-ce que ta requête fonctionne ?
    la feuille "Source" existe dans ton classeur ?
    Il rentre dans le catch ?
    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut
    Il rentre bien dans le catch et me sort le message suivant :

    The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

    Ensuite la boucle se termine et il ne reboucle plus....Il fini le passage si tu préfères.

    Merci pour ta réponse.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut
    Il me fait un premier passage impeccable, et au deuxième....rideau.

    J'ai l'impression que la fermeture ou l'enregistrement d'Excel est mal placé.

  5. #5
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Par défaut
    essaye de suivre cette méthode pour voir
    https://msdn.microsoft.com/en-us/library/aa389286.aspx

Discussions similaires

  1. [VB.Net] - Acces à Excel depuis VB.Net
    Par toninonino dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/09/2005, 11h12
  2. [VB.NET] DataGrid, Excel et encodage
    Par franculo_caoulene dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/10/2004, 15h11
  3. [VB.NET] Fichier Excel vérouillé avec mot de passe
    Par rafano dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2004, 14h36

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