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 :

enregistrer un datagrid dans un base access sous VB2010


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut enregistrer un datagrid dans un base access sous VB2010
    Bonjour,

    j'essaie de créer une connexion de toute main (donc uniquement par le code)
    entre Access et VB 2010. (tout par code car je n'ai pas le choix... les base access n'existent pas au lancement de l'appli)
    Le but est de pouvoir sauvegarder plusieurs datagrid dans une base.

    j'ai donc trouvé ce code pour créer ma connexion avec access et créer mon fichier mdb. Pouvez vous déjà me dire si c'est encore bon avec VB 2010 ou si la procédure est simplifiée:
    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
     
    Dim result As Boolean = False
    Dim data_base_engine As New DBEngine
    Dim data_base As Database
    Dim nom_fichier As String 'nom du fichier d'enregistrement de la simulation
     
    nom_fichier = InputBox("Sous quel nom voulez vous enregistrer votre simulation ?", "Enregistrer sous")
            If nom_fichier = "" Then Exit Sub 'signifie que l'utilisateur a annulé l'action
            nom_fichier = nom_fichier & ".mdb"
     
            Try
     
                data_base = data_base_engine.CreateDatabase("d:\temp\" & nom_fichier, dbLangGeneral)
     
                If Not (data_base Is Nothing) Then result = True
     
            Catch ex As Exception : MsgBox(ex.Message)
            Finally : If Not (data_base Is Nothing) Then data_base.Close()
            End Try
     
     
            'Déclarer la connexion
            Dim ObjetConnection As OleDbConnection
     
            ' Déclaration l'Objet Commande
            Dim ObjetCommand As OleDbCommand
     
            'Paramètres de connexion à la Base de données
            Dim strConn As String
     
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= d:\temp\" & nom_fichier & ";"
     
            ObjetConnection = New OleDbConnection
     
            'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.ConnectionString = strConn
     
            'Ouvrir la connexion
            ObjetConnection.Open()
     
            'Instancier un objet Commande
            ObjetCommand = New OleDbCommand
     
            'Lier Commande et Connexion
            ObjetCommand.Connection = ObjetConnection
     
            'Indiquer le type de commande
            ObjetCommand.CommandType = CommandType.Text
     
            'Donner le texte de la commande SQL
            'Ici on crée une table Simulation
            ObjetCommand.CommandText = "CREATE TABLE Simulation (Sim_ID INTEGER NOT NULL PRIMARY KEY, Sim_Date DATETIME, Sim_1 CURRENCY, Sim_2 CURRENCY, Sim_3 CURRENCY, Sim_4 CURRENCY, Sim_5 CURRENCY, Sim_6 CURRENCY)"
    Jusque là ca fonctionne, ma base existe bien et je vois les champs crées dynamiquement dans cette base.
    maintenant je souhaite y intégrer les données de datagrid.
    c'est là que ca se complique.

    je sèche... y aurait-il possibilité de gérer cela de la même façon qu'une base vers un datagrid (avec datagrid.datasource=...)

    merci de votre aide

    K

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2005
    Messages : 151
    Par défaut
    salut essai avec ce code pour moi ca marche bien
    et bonne chance mon ami:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 0 To dset.Tables("test").Rows.Count - 1
                With dset
                    ' Création de la nouvelle ligne 
                    Drow = dset.Tables("test").NewRow
                    'affectation des valeurs
                    Drow("nom") = dset.Tables("test").Rows(i).Item("nom")
                    Drow("prenom") = dset.Tables("perssonne").Rows(i).Item("prenom")
                    ' Ajout de la ligne à la table
                    .Tables("test").Rows.Add(Drow)
                End With
            Next
            CmdBuild = New OleDb.OleDbCommandBuilder(adapter_acces)
            adapter_acces.Update(dset, "test")
    je souhaite que ca va t'aider

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/04/2014, 12h45
  2. Enregistrer des donnees dans une base access
    Par mmidox dans le forum VB.NET
    Réponses: 1
    Dernier message: 31/03/2010, 13h59
  3. Réponses: 1
    Dernier message: 19/04/2008, 19h08
  4. Réponses: 22
    Dernier message: 13/03/2008, 18h57
  5. Réponses: 3
    Dernier message: 01/07/2006, 11h27

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