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 :

probème avec le Savefiledialog (recherche des octets dans la base de donnée)


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut probème avec le Savefiledialog (recherche des octets dans la base de donnée)
    Bonjour à tous,

    Tout d'abord je tiens à préciser que je suis débutant en vb.net.
    J' ai un code qui permet d'appeler un fichier excel existant pour le remplire grace à un datagridview.
    Mon probleme survient au moment du savefiledialog au début de la sub.
    Il doit permettre à l'utilisateur de créer le fichier à l'endroit choisi en faisant appel aux octets du fichier source stockés dans la base de données.
    En gros je dois :
    - demander où créer le fichier au début de la sub (savefiledialog)

    - récupérer les octets depuis la base de données (FeuillesHeuresLib.CreateFileWithReferenceFile)

    - créer le fichier sur le disque

    - faire ton traitement de remplissage sur le fichier créé

    - Après avoir fermé le fichier excel, ouvrir l'explorateur windows : Shell("explorer.exe /n, /e, /select, """ & fsd.FileName & """", AppWinStyle.NormalFocus)

    mais je ne sais comment faire, je n'arrive pas à récupérer les octets !

    voici mon code :
    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
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    Private Sub ButtonAltead2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAltead2.Click
     
            Dim xlApp As Microsoft.Office.Interop.Excel.Application
            Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
            Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
            Try
                xlApp = New Microsoft.Office.Interop.Excel.Application
                xlWorkSheet = New Microsoft.Office.Interop.Excel.Worksheet
     
                ' Dim misValue As Object = System.Reflection.Missing.Value
                Dim ixLine As Integer
     
                'Ouverture de l'application
                xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
                'Ouverture d'un fichier Excel
                xlWorkBook = xlApp.Workbooks.Open("D:\DataUser\Feuille d'heure\S1-Fiche de travail hebdomadaire.xls")
                'wsExcel correspond à la première feuille du fichier
                xlWorkSheet = CType(xlWorkBook.Worksheets("S1-Fiche Travail Hebdo"), Microsoft.Office.Interop.Excel.Worksheet)
                xlWorkSheet.Visible = Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetVisible
                xlApp.Visible = True
     
     
     
                Dim sfd As New SaveFileDialog
                'Dim rtb As New RichTextBox
                'sfd.Filter = "Excel|*.xls|Texte|*.txt|Richtext|*.rtf"
                'sfd.Title = "Sauver le fichier exporter sous ?"
                'sfd.FileName = "D:\DataUser\Feuille d'heure\S1-Fiche de travail hebdomadaire.xls"
                'sfd.ShowDialog()
     
                'If sfd.ShowDialog() = DialogResult.OK Then
                '    rtb.SaveFile(sfd.FileName, _
                '    RichTextBoxStreamType.PlainText)
                'End If
     
     
     
                'Dim chemin As String = "D:\DataUser\TLUC\OJDO"
     
                'Dim result As DialogResult = sfd.ShowDialog()
     
                'If (result = Windows.Forms.DialogResult.OK) Then
     
                '    chemin = sfd.FileName
                '    xlWorkSheet.SaveAs("D:\DataUser\TLUC\OJDO" & ".xlsx")
                '    xlApp.Application.Quit()
                'End If
     
     
     
     
     
     
                Dim collectionLignes As New System.Collections.Generic.List(Of Ligne)
     
                'lecture dgv
     
                For ixLine = 0 To DataGridAlteadHeuresSemaine.DGV.RowCount - 1
                    Dim DGVdate As String = CType(DataGridAlteadHeuresSemaine.DGV(1, ixLine).Value, String)
                    Dim DGVnumAffaire As String = CType(DataGridAlteadHeuresSemaine.DGV(2, ixLine).Value, String)
                    Dim DGVclient As String = CType(DataGridAlteadHeuresSemaine.DGV(3, ixLine).Value, String)
                    Dim DGVsite As String = CType(DataGridAlteadHeuresSemaine.DGV(4, ixLine).Value, String)
                    Dim DGVnbH As String = CType(DataGridAlteadHeuresSemaine.DGV(5, ixLine).Value, String)
                    ' Dim DGVcodeActivite As String = CType(DataGridAlteadHeuresSemaine.DGV(7, ixLine).Value, String)
     
     
     
                    Dim maLigne As New Ligne(DGVdate, DGVnumAffaire, DGVclient, DGVsite, DGVnbH) 'DGVcodeActivite)
                    If Not maLigne.TraitementValeurs() Then
                        Throw New System.Exception("erreur lors du traitement des valeurs")
                    End If
     
     
                    collectionLignes.Add(maLigne)
     
                Next
     
     
                'lecture de la collection
                Dim line As Ligne
                Dim ixExcel As Integer = 8
                Dim strFullName As String = Me.ComboBoxAlteadRessource.Text
                Dim strName As String = strFullName.Split(CType(" ", Char))(0)
                Dim strFirstName As String = strFullName.Split(CType(" ", Char))(1)
                For Each line In collectionLignes
     
     
     
     
     
                    If line.xlsJour = "sam" Then
                    ElseIf line.xlsJour = "dim" Then
                        xlWorkSheet.Cells(ixExcel, "ab") = line.xlsHeures.ToString
     
                    End If
     
     
                    xlWorkSheet.Cells(ixExcel, "b") = line.xlsJour
                    xlWorkSheet.Cells(ixExcel, "d") = line.xlsDate.ToString
                    'xlWorkSheet.Cells(ixExcel, "f") = line.xlsCodeActivite
                    xlWorkSheet.Cells(ixExcel, "f") = line.xlsNumAffaire
                    xlWorkSheet.Cells(ixExcel, "k") = line.xlsClient
                    xlWorkSheet.Cells(ixExcel, "q") = line.xlsSite
                    xlWorkSheet.Cells(ixExcel, "x") = line.xlsHeures.ToString
                    xlWorkSheet.Cells(ixExcel, "ai") = line.xlsBrmDplcmt
                    xlWorkSheet.Cells(ixExcel, "af") = line.xlsDistDomChant.ToString
                    xlWorkSheet.Cells(3, "e") = line.xlsDate.ToString
                    xlWorkSheet.Cells(3, "u") = xlWorkSheet.Cells(8, "d")
                    xlWorkSheet.Cells(3, "o") = NumSemaine
                    xlWorkSheet.Cells(5, "b") = strName
                    xlWorkSheet.Cells(5, "k") = strFirstName
     
     
                    ixExcel = ixExcel + 1
     
                Next
     
     
     
     
     
            Catch ex As Exception
                TraceErreur.Trace(ex, Me)
                Me.Saisie.GestionMessage.AfficheMessage("Erreur", "Erreur lors de l'exportation excel", ContentAlignment.MiddleCenter, Me)
            Finally
                releaseObject(xlApp)
                releaseObject(xlWorkBook)
                releaseObject(xlWorkSheet)
            End Try
     
        End Sub
     
     
        Private Sub releaseObject(ByVal obj As Object)
            Try
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
                obj = Nothing
            Catch ex As Exception
                obj = Nothing
            Finally
                'GC.Collect()
            End Try
        End Sub
     
     
        Private Class Ligne
     
            Public Function TraitementValeurs() As Boolean
     
     
                Try
                    xlsJour = Split(DGVdate, " ")(0).Substring(0, 3)
                    xlsDate = CDate(Split(DGVdate, " ")(1))
                    'xlsCodeActivite = Split(DGVcodeActivite, "-")(0)
                    xlsNumAffaire = DGVnumAffaire
                    xlsClient = DGVclient
                    xlsSite = DGVsite
                    xlsHeures = CDec(DGVnbH)
     
                    Return True
                Catch ex As Exception
                    Return False
                    TraceErreur.Trace(ex, Me)
                End Try
            End Function
            Public xlsJour As String
            Public xlsDate As Date
            ' Public xlsCodeActivite As String
            Public xlsNumAffaire As String
            Public xlsClient As String
            Public xlsSite As String
            Public xlsHeures As Decimal
            Public xlsDistDomChant As Decimal
            Public xlsBrmDplcmt As String
     
            Public DGVdate As String
            Public DGVnumAffaire As String
            Public DGVclient As String
            Public DGVsite As String
            Public DGVnbH As String
            'Public DGVcodeActivite As String
     
            Public Sub New(ByVal _DGVdate As String, ByVal _DGVnumAffaire As String, ByVal _DGVclient As String, ByVal _DGVsite As String, ByVal _DGVnbH As String) ', ByVal _DGVcodeActivite As String)
                Try
                    Me.DGVdate = _DGVdate
                    Me.DGVnumAffaire = _DGVnumAffaire
                    Me.DGVclient = _DGVclient
                    Me.DGVsite = _DGVsite
                    Me.DGVnbH = _DGVnbH
                    'Me.DGVcodeActivite = _DGVcodeActivite
                Catch ex As Exception
                    TraceErreur.Trace(ex, Me)
                End Try
            End Sub
        End Class
     
    End Class
    En espérant que vous pourrez m'aider.

    Cordialement

    Thomas

  2. #2
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    Salut,

    Pourrais tu mettre la balise code afin qu'on y voit plus clair?

    Sinon j'ai pas bien compris pourquoi tu recherche les octets, étant donné que des valeurs sont dans une DataGridView...
    si mon message a été utile - si je suis à côté de la plaque - quand vous avez la réponse à votre question

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'avoue que moi non plus je vois pas trop l'intéret mais c'est ce qu'on m'a dit de faire ^^ Comme je l'ai compris, il faut recréer à chaque fois le fichier de base mais je reste dans le flou total

  4. #4
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    Pour qu'on puisse t'aider il faudra préciser le problème

    Car tu dis sélectionner un fichier excel existant, puis après tu dis que tu arrives pas à créer le fichier...
    si mon message a été utile - si je suis à côté de la plaque - quand vous avez la réponse à votre question

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'vais tenter d'etre plus précis mais je te promet rien lol en gros j'ai un fichier excel déja mis en page, en activant le bouton le datagrid du logiciel est copier dans le fichier excel.
    Sauf qu'il est copié dans le modèle, pour parer à ça j'ai mis le fichier en lecture seule pour que l'utilisateur ne puisse pas l'écraser mais ça fait pas " propre".
    Donc ce que mon chef de projet veut c'est enregistrer le ficher en octets dans la base de données ( ce qui est fait) puis à chaque interaction avec le bouton recréer le fichier à partir de la base ( c'est une copie sans l'etre puisque il est recréé entierement).
    C'est comme ça que je l'ai compris ^^

Discussions similaires

  1. stocker des fichiers dans une base de données avec java
    Par dali0802 dans le forum Général Java
    Réponses: 4
    Dernier message: 08/04/2014, 17h21
  2. Réponses: 1
    Dernier message: 24/12/2010, 13h06
  3. Rechercher des informations dans une base de donnée en excel
    Par simonasjdp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2009, 19h10
  4. Taille des vues dans la base de donnée
    Par Andry dans le forum Débuter
    Réponses: 5
    Dernier message: 21/01/2005, 21h06
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54

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