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 :

Gérer les données dans un fichier


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut Gérer les données dans un fichier
    Bonjour à tous,

    Voilà, je dois faire une petite application toute bête (sous VB .net) qui grosso modo gère des commandes (créer, supprimer et modifier) et qui les affichent par date de réception.
    LE PROBLEME, c'est que je n'ai pas de BDD, donc je dois gérer ca par fichier (Excel ou txt formaté avec champ de longueur fixe ou séparateur <;> par exemple)

    Bref, je voudrais savoir si vous savez comment gérer ca sous VB .net et notamment s'il existe des fonctions ou un mécanisme permettant d'accéder aux données du fichier comme on le ferait dans une bdd avec recherche sur un ou plusieurs critères.
    Et si on peut renvoyer ses données dans une datagrid.

    Si vous avez des pistes ... merci.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    pourquoi ne peut tu pas mettre en place une bdd ??

    sql server express est gratuit et tu vas y gagner en temps de développement...
    si vraiment c'est trop lourd à mettre en place, tu fais une base access, c'est gratuit aussi et c'est juste un fichier ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Ca m'ennuie de mettre une base de données car je fais cette appli pour rendre service à mon compagon qui gère ces commandes sur papier. Ca n'a rien d'officiel et je ne pourrais pas intervenir sur le pc (ni pour insatller ni en cas de pb).

    Donc le plus simple et de lui donner un .exe qui manipule un .xls ou un .txt.
    En cas de pb, il peut me ramener le fichier de données à la maison et faire le point à la maison avec la même appli installé sur mon pc
    Si ya une bdd ... ca devient compliquer.

  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Utilise une BDD Access c'est le plus simple et puis c'est rapide à mettre en place.
    Par fichier c'est faisable mais tu rajoute 500 lignes de codes ^^ Lol je dec mais c'est très lours et ardu

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    un base accès c'est juste un fichier (.mdb)
    donc il te le ramène, tu l'ouvres avec access ou tu l'utilises avec le soft
    tu peux meme lui faire un bouton qui envoie le fichier mdb par internet ...

    enfin ne te prends pas la tete avec un fichier texte
    dans le pire des cas apprends lui à se servir (rudimentairement) d'access c'est pas bien compliqué

  6. #6
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Si il veux bien utiliser Access, je l'aiderais.
    Les commandes sont similaires aux commandes SQL, en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT FROM, INSERT INTO, DELETE FROM, UPDATE SET
    Et oui c'est tout ! Et c'est facile à mettre en place

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    OK ... je crois que vous avez raison ... J'me lance ce soir (création base, tables et insertion des données)
    Mais j'ai jamais utilisé access .. c'est p'tete moi, qu'aura besoin d'aide ...

    Merci à tous

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Ok donc on va faire simple : Deja installe Access si c'est pas encore fait et crée une base de donnée avec Access (sans VB.NET) Une fois tes champs créés previent moi et on passe au codage ^^

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Ce soir, dès que c'est créé sur mon PC je reviens ...

    Petite question : quand j'aurais fait tout ca, avec l'appli vb qui va bien derrière etc, qu'est ce qui devra être fait sur le PC final d'utilisation ???

    - Insalle d'access,
    - Copie du .mdb,
    - Copie .exe de vb
    ??? ca suffira ???

  10. #10
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Tu va etre surpris

    RIEN ! Seulement le mec devra avoir le framework 1.1 (VB.NET 2003) ou 2.0 (VB.NET 2005)

    Tu codes en quoi au fait ?

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    si je ne me trompe,
    la gestion du fichier mdb (ouverture et utilisation en langage sql) se fait grace au moteur jet qui est installé avec windows (sauf les vieux windows où on peut installer microsoft jet)


    access est une sorte de couche graphique qui est bien pratique pour créer les tables ...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    surprisE ...

    A vrai dire ... je sais pas en quoi je code : je suis intervenue sur des applis déjà existantes (un .sln et des .vb) alors ... je sais que c'est pas en C# ni C++.
    Je pense que c'est ce qu'on appelle le vb dotnet mais tout ce mic mac est pas très claire car je ne suis jamais parti de zéro donc ya plein de question que je n'ai pas eu à me poser.

    Pour ce qui est de mon appli je fais comme je veux (comme je peux) ... créer une solution, créer un projet VB ???

  13. #13
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    La tu es dans la rubrique VB.NET donc tu crée ton projet en .NET (extensions, .Sln et .Vb)

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Voilà, j'ai créer la bdd sous access (j'ai pas reussi à mettre les foreign key). A part ca j'ai initialisé une solution dans vb net.
    Et puis là, gloups : comment me connecter à la base access dans vb net ???

  15. #15
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Now tu va coller ce code dans une classe :
    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
    #Region "Imports"
    Imports System.IO
    Imports System.Data
    Imports System.Data.OleDb
    #End Region
     
    Public Class C_Access
    #Region "Variables"
        Private m_Mdb As String 'Acces a la base de données sur disque dur
        Private m_SQL As String 'Requete SQL 
        Private m_Provider As String
        Private m_Open As Boolean 'Indique si a la 1ere ouverture la connection doit rester ouverte
     
        Dim SourceOle As OleDbConnection
    #End Region
    #Region "Sub New Overrides Finalize"
        Public Sub New()
            m_Provider = "Microsoft.Jet.OLEDB.4.0"
            m_Open = False
        End Sub
        Protected Overrides Sub Finalize()
            If m_Open = False And SourceOle.State = ConnectionState.Open Then SourceOle.Close()
            MyBase.Finalize()
        End Sub
    #End Region
    #Region "Execution Principale"
        Public Function Execute() As DataView
            If m_Mdb.Length = 0 Or m_SQL.Length = 0 Or m_Provider.Length = 0 Then
                MsgBox("Chaine vide")
                Exit Function
            End If
     
            Try
                Dim SourceConnect As String = "Provider=" & m_Provider & ";" & "Data Source=" & m_Mdb
                SourceOle = New OleDbConnection(SourceConnect)
     
                Select Case SourceOle.State
                    Case ConnectionState.Closed
                        SourceOle.Open()
                End Select
     
                Dim DataA As New OleDbDataAdapter(m_SQL, SourceOle)
                Dim DataS As New DataSet
                DataA.Fill(DataS, "Obj")
     
                Try 'return incorrect sur du Update 
                    Return DataS.Tables("obj").DefaultView
                Catch ex As Exception
     
                Finally
                    If m_Open = False And SourceOle.State = ConnectionState.Open Then SourceOle.Close()
                End Try
     
            Catch ex As Exception
                MsgBox("Erreur de transaction avec la Base : " & ex.Message)
            End Try
        End Function
     
    #End Region
    #Region "Propriétés"
        Public Property Dec_MDB() As String 'Acces a la base de données
            Get
                Dec_MDB = m_Mdb
            End Get
            Set(ByVal Value As String)
                m_Mdb = Value
            End Set
        End Property
        Public Property Dec_Provider() As String 'Acces Provider
            Get
                Dec_Provider = m_Provider
            End Get
            Set(ByVal Value As String)
                m_Provider = Value
            End Set
        End Property
        Public Property Dec_Sql() As String 'requete qui sera executée
            Get
                Dec_Sql = m_SQL
            End Get
            Set(ByVal Value As String)
                m_SQL = Value
            End Set
        End Property
        Public Property Always_Open() As Boolean  'Une fois executée, est ce que la connection doit rester ouverte? par defaut elle sera fermée automatiquement
            Get
                Always_Open = m_Open
            End Get
            Set(ByVal Value As Boolean)
                m_Open = Value
            End Set
        End Property
    #End Region
    End Class
    Ensuite tu instancie ta classe et tu lui donne le path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Private NAccess As New C_Access
    NAccess.Dec_MDB = "chemin de ton fichier access"

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    ok, c'est fait.
    L'instanciation, je l'ai mis dans le load de la fenêtre principale (et unique à priori).
    Ca a l'air bien ficelé ton truc, mais qu'est ce que j'en fait et comment ca fonctionne ?

  17. #17
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Maintenant tout depens de ce que tu veux faire :
    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
       Private NDataV As New DataView
        Private Enum Action
            Selectionner_Unique
            Selectionner_All
            Ajouter
            Supprimer
            Update
        End Enum
     
        Private Sub Add_Access(ByVal Act As Action, ByVal table As String)
            With NAccess
                Select Case Act
                    Case Action.Selectionner_Unique : .Dec_Sql = "SELECT Ip FROM " & table
                        NDataV = .Execute
                    Case Action.Selectionner_All : .Dec_Sql = "SELECT * FROM " & table
                        NDataV = .Execute
                    Case Action.Ajouter : .Dec_Sql = "INSERTB INTO " & table & "(Champ_1, Champ_2) VALUES (Valeur_1, Valeur_2)"
                        NDataV = .Execute
                End Select
            End With
    End Sub
    Il faut que tu changes le code en fonction du nom de ta table et du nom de tes champs...

    Fais des recherches sur internet sur les commandes SQL tu verras c'est très facile à utiliser

    En fait tu passes ta requete SQL dans la variable "Dec_Sql " et ensuite tu l'executes avec la fonction "Execute" et tu récupères le resultat dans une DataView...

    Bonne chance !

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Ce que je veux faire c'est un seul écran avec en haut une datagrid qui ramène les données d'une table avec un ou deux critères de recherche dynamique et en dessous, la possibilité d'afficher le détail d'une ligne et bien sur les boutons habituels "Créer", "Modifier", "supprimer".
    Donc je vais commencer par le select et le mettre dans la datagrid via le dataview ...
    Merci pour le code ...

  19. #19
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par ploukinet
    Merci pour le code ...
    Merci bonne chance

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Je voudrais savoir s'il est possible de faire comme l'avait dit au début ploukinet ... si une personne c'est quand procédé je veux bien savoir

    merci d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/02/2009, 13h02
  2. Réponses: 24
    Dernier message: 25/09/2007, 11h53
  3. Réponses: 2
    Dernier message: 19/03/2007, 17h38
  4. Sauvegarder les données dans un fichier CSV
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2006, 13h06
  5. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39

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