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 :

Formulaire avec ajouter/modifier/supprimer


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Par défaut Formulaire avec ajouter/modifier/supprimer
    Bonjour,

    Je cherche à faire un formulaire qui me permettrait d'ajouter/modifier/supprimer des données d'un datagridview qui est relié à une table access par le code et non le databindings.
    Cependant je ne voit pas comment faire.

    J'ai le code pour le bouton ajouter et nouveau.

    Cependant je ne sais pas comment faire pour le bouton supprimer et modifier
    Pour supprimer: je voudrais sélectionner la ligne dans le datagridview et la supprimer en cliquant sur le bouton et que ça mette à jour la table access.
    Pour modifier: je voudrais selectionner la ligne à modifier, que le texte apparaisse dans une textbox et que ca le modifie quand je clqieu sur modifier et pareil que la table access se mette à jour.

    Je vous met déjà je code que j'ai.
    Merci d'avance pour votre aide

    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
     
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
     
    Public Class TypeDeProduit
        'Déclaration de la variable pour la connection      
        Private cnx As OleDbConnection
        'Déclaration de la variable pour la commande       
        Private cmd As OleDbCommand
        'Déclaration de la variable pour le dataadapter
        Private dta As OleDbDataAdapter
        'Déclaration de la variable pour le dataset      
        Private dts As New DataSet
        'Déclaration de la variable pour la requête      
        Private sql As String
        'Déclaration de la variable pour la datatable
        Private dtt As DataTable
        'Déclaration de la variable pour le datarow      
        Private dtr As DataRow
        'Déclaration de la variable pour le Nº de l'enregistrement       
        Private rownum As Integer
        'Déclaration de la variable pour la connectionstring      
        Private cnxstr As String
        'Déclaration de la variable pour le commandbuilder      
        Private cmdb As OleDbCommandBuilder
        Private Sub TypeDeProduit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'ouverture de la connection (à partir du répertoire de l'application) sur la même ligne      
            cnxstr = "provider = microsoft.ace.oledb.12.0 ; data source = C:\Users\mto\Desktop\MINI-ERP\ERP.accdb;"
            cnx = New OleDbConnection
            cnx.ConnectionString = cnxstr
            cnx.Open()
     
            'Création de la requête sql      
            sql = "select TypeDeProduit.Type_de_produit from TypeDeProduit"
     
            'Création de la commande et on l'instancie (sql)       
            cmd = New OleDbCommand(sql)
     
            'Création du dataadapter (dta) et on l'instancie (cmd)      
            dta = New OleDbDataAdapter(cmd)
     
            'On instancie la commande (cmd) à la connection (cnx)       
            cmd.Connection() = cnx
     
            'On charge le dataset (dts) grâce à la propriété fill du dataadapter (dta)      
            dta.Fill(dts, "Type_de_produit")
     
            'On charge la datatable (dtt) grâce à la propriété tables du dataset (dts)
            dtt = dts.Tables("Type_de_produit")
     
            DataGridView1.DataSource = dts
            DataGridView1.DataMember = dtt.ToString
            DataGridView1.Columns("Type_de_produit").Width = 190
     
        End Sub
     
        Private Sub Fermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Fermer.Click
            Me.Close()
        End Sub
     
        Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            dts.Clear()
            dta = New OleDbDataAdapter("SELECT TypeDeProduit.Type_de_produit FROM TypeDeProduit", cnx)
            dta.Fill(dts, "Type_de_produit")
     
            dtr = dts.Tables("Type_de_produit").NewRow
            dtr(0) = Me.TextBox1.Text
            MessageBox.Show("Bien ajouté")
     
            dts.Tables("Type_de_produit").Rows.Add(dtr)
     
            DataGridView1.DataSource = dts
            DataGridView1.DataMember = dts.Tables("Type_de_produit").ToString
     
            cmdb = New OleDbCommandBuilder(dta)
            dta.Update(dts, "Type_de_produit")
     
            Me.TextBox1.Text = String.Empty
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            dtr = dts.Tables("Type_de_produit").NewRow
            dts.Tables("Type_de_produit").Rows.Add(dtr)
        End Sub
     
     
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
     
            For Each row As DataGridViewRow In DataGridView1.SelectedRows
                DataGridView1.Rows.Remove(row)
            Next
     
     
        End Sub
    End Class

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    pour savoir quelle ligne est sélectionnée (et ainsi remplir ta(tes) contrôle(s)), tu dois t'abonner à l'événement SelectionChanged de ton DataGridView.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Par défaut
    C'est bon, je me suis abonner à l'evenement SelectionChanged.

    Mais je ne vois pas quoi mettre en code pour la modification et la suppression.
    J'ai chercher partout sur internet et sur youtube pour les video et rien....

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Un petit exemple (en c# mais c'est pareil) pour t'aider :
    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
    // un attribut de la classe pour conserver la dernière ligne sélectionnée
    private DataGridViewRow selectedRow = null;
     
    // dgv1 est le nom de mon DataGridView
    private void dgv1_SelectionChanged(object sender, EventArgs e) {
    	// on vérifie qu'on a bien une seule ligne de sélectionnée
    	if (dgv1.SelectedRows.Count == 1) {
    		// on garde une référence sur la ligne sélectionner pour les actions de modification et de suppression
    		this.selectedRow = dgv1.SelectedRows[0];
    		// on remplit les contrôles
    		textBox1.Text = this.selectedRow.Cells[0].Value.ToString();
    		textBox2.Text = this.selectedRow.Cells[1].Value.ToString();
    		// et ainsi de suite, selon le nombre de champs que tu as
    	}
    }

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Par défaut
    J'ai essayer d'utiliser ton code mais je n'ai pas réussi à le mettre pour moi.

    Et puis je veux que ça supprime de ma datagridview1 et que ça mette à jour dans ma table.

    J'ai donc essayer de mettre ce code mais ça ne marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            dts.Clear()
            dta = New OleDbDataAdapter("SELECT TypeDeProduit.Type_de_produit FROM TypeDeProduit", cnx)
            dta.Fill(dts, "Type_de_produit")
     
            DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
            DataGridView1.DataSource = dts
            DataGridView1.DataMember = dts.Tables("Type_de_produit").ToString
            cmdb = New OleDbCommandBuilder(dta)
            dta.Update(dts, "Type_de_produit") //La génération SQL dynamique de DeleteCommand n'est pas prise en charge pour un SelectCommand qui ne retourne pas des infomations de colonne clé
     
     
        End Sub
    Vous savez pourquoi ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Par défaut
    Petite precision: ma table access contient deux colonne (Id_produit et Tpe_de_produit)
    Mon formulaire contient une datagridview dans laquelle je ne viens africher que la colonne type_de_produit, une textbox ou l'on vient ecrire le nom du type de produit et des bouton pou ajouter, supprimer et modifier

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 52
    Par défaut
    Bonjour!
    l'événement SelectionChanged de ton DataGridView, as-tu essayé d'utiliser la requête "Delete" suivi de "where?

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2008, 14h59
  2. Réponses: 1
    Dernier message: 15/05/2008, 11h48
  3. Ajouter/Modifier/Supprimer des elements d'une bdd
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 31/03/2008, 18h39
  4. Formulaire avec liste modifiable
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/03/2006, 08h06

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