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 :

Message d'erreur lors de l'ajout de données dans une base access [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut Message d'erreur lors de l'ajout de données dans une base access
    salut tout le monde. Voilà je tente de mettre en place une application windows Forms avec vb.net 2008. Lors de l'ajout de données avec ce 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
    Private Sub cmd_enregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_enregistrer.Click
            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand
            ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
            Dim sql_ajouter As String
     
            ' On écrit notre requête et on l'assigne à la variable sql_ajouter
            sql_ajouter = "INSERT INTO Membre (Matricule,dat_adh,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) VALUES(Val_Matricule,Val_dat_adh, Val_Nom,Val_Prenom ,Val_dat_naiss,Val_sexe,Val_pays,Val_ville,Val_lang_parl,Val_tel,Val_cel,Val_nbre_enf,Val_typ_memb,Val_profession,Val_stat_marital,Val_depart,Val_autre_depart,Val_respo)"
     
            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_ajouter, con)
     
            ' On définit les paramètres utilisés pour le bon déroulement de la requête
            ' On assigne à Val_pren" le texte contenu dans le prenom
            cmd.Parameters.AddWithValue("Val_Matricule", Matricule_txt)
            cmd.Parameters.AddWithValue("Val_dat_adh", Dat_adhtxt)
            ' On assigne à Val_Nomm" le texte contenu dans le nom
            cmd.Parameters.AddWithValue("Val_nom", Nom.Text)
            cmd.Parameters.AddWithValue("Val_pren", Prenom.Text)
            cmd.Parameters.AddWithValue("Val_dat_naiss", Dat_naisstxt)
            cmd.Parameters.AddWithValue("Val_sexe", Sexe)
            cmd.Parameters.AddWithValue("Val_pays", pays_txt)
            cmd.Parameters.AddWithValue("Val_ville", ville_txt)
            cmd.Parameters.AddWithValue("Val_lang_parl", lang_parltxt)
            cmd.Parameters.AddWithValue("Val_tel", tel_txt)
            cmd.Parameters.AddWithValue("Val_cel", cel_txt)
            cmd.Parameters.AddWithValue("Val_nbre_enf", nbr_enftxt)
            cmd.Parameters.AddWithValue("Val_typ_memb", typ_txt)
            cmd.Parameters.AddWithValue("Val_profession", profess_txt)
            cmd.Parameters.AddWithValue("Val_stat_marital", statmar_txt)
            cmd.Parameters.AddWithValue("Val_depart", depart_txt)
            cmd.Parameters.AddWithValue("Val_autre_depart", autrde_txt)
            cmd.Parameters.AddWithValue("Val_respo", respo_txt)
     
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            cmd.ExecuteReader()
            ' Fermeture de la connexion
            cmd.Connection.Close()
     
            ' On efface les  "textbox"
            Matricule_txt.Text = ""
            Dat_adhtxt.Text = ""
            Prenom.Text = ""
            Nom.Text = ""
            Dat_naisstxt.Text = ""
            Sexe.Text = ""
            pays_txt.Text = ""
            ville_txt.Text = ""
            lang_parltxt.Text = ""
            tel_txt.Text = ""
            cel_txt.Text = ""
            profess_txt.Text = ""
            nbr_enftxt.Text = ""
            typ_txt.Text = ""
            statmar_txt.Text = ""
            depart_txt.Text = ""
            respo_txt.Text = ""
            autrde_txt.Text = ""
     
     
            ' Message indiquant que le nouveau membre a bien été enregistré
            MsgBox("Le nouveau membre a bien été enregistré.", MsgBoxStyle.Information)
     
            ' On vide le dataset
            ds.Clear()
     
            ' et on le réaffiche en faisant appel à Connexion()
            ' pour que notre nouveau contact apparaisse bien
            Connexion()
     
            ' Si la table contient 1 seul enregistrement après avoir cliqué sur le bouton ajouter
            ' il faut activer tous les boutons
            If Max_Enregistrements = 1 Then
                cmd_modifier.Enabled = True
                cmd_suivant.Enabled = True
                cmd_precedent.Enabled = True
                cmd_premier.Enabled = True
                cmd_dernier.Enabled = True
                cmd_supprimer.Enabled = True
            End If
        End Sub
    ,j'ai une erreur à cette ligne disant :
    Type de données incompatible dans l'expression du critère.
    Et dépuis je suis coincé. Il faut préciser que Matricule est mon ID dans ma table MEMBRE.
    J'utilise également un code qui me permet de naviguer entre les différents enregistrements(Suivant,Précédent,Premier et Dernier) voici le code me permettant de les gérer avec mon Sub Navigation
    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
    Private Sub Navigation()
     
            ' Pour naviguer dans la table,nous utilisons la variable Place_Enregistrement
            ' déclarée en haut de cette page. On lui ajoutera ou  otera 1:
            ' +1 pour l'enregistrement suivant, -1 pour l'enregistrement précédent.
            ' La partie importante de ces lignes est rows(Place_Enregistrement): cela permet
            ' de nous déplacer dans les lignes du dataset.
     
     
            ' on assigne à Val_ID l'ID de l'enregistrement en cours (que l'on utilisera pour
            ' mettre à jour / modifier un enregistrement)
            Val_ID = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(0)
            ' On place ensuite les valeurs dans les textbox correspondant à chaque label
            Matricule_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(1)
            Dat_adhtxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(2)
            Nom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(3)
            Prenom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(4)
            Dat_naisstxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(5)
            Sexe.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(6)
            pays_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(7)
            ville_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(8)
            lang_parltxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(9)
            tel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(10)
            cel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(11)
            nbr_enftxt.TextAlign = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(12)
            typ_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(13)
            profess_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(14)
            statmar_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(15)
            depart_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(16)
            autrde_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(17)
            respo_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(18)
        End Sub
    Il faut dire que la variable Val_ID contient l'ID de l'enregistrement en cours
    Merci d'avance pour les éventuelles réponses.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    j'ai déjà eu ce problème via oleDb.
    C'est parce que vous utilisez AddWithValue qui cherche à mettre automatiquement le bon type (integer, varChar, decimal...)
    essayez de mettre vous mêmes le type de la colonne de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add("Val_nbre_enf", OleDb.OleDbType.Integer).value = nbr_enftxt
    De plus, en oleDb, les paramètres doivent normalement être indiqué par de point d’interrogation dans la requête :
    Citation de la MSDN
    The syntax for parameter placeholders depends on the data source. The .NET Framework data providers handle naming and specifying parameters and parameter placeholders differently. This syntax is customized to a specific data source, as described in the following table.

    Data provider

    Parameter naming syntax

    System.Data.SqlClient => Uses named parameters in the format @parametername.
    System.Data.OleDb => Uses positional parameter markers indicated by a question mark (?).
    System.Data.Odbc => Uses positional parameter markers indicated by a question mark (?).
    System.Data.OracleClient => Uses named parameters in the format :parmname (or parmname).
    donc la requête doit devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql_ajouter = "INSERT INTO Membre (Matricule,dat_adh,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) "
    sql_ajouter &=  " VALUES( ?, ?, ? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? )"
    Et les paramètres doivent être déclaré dans l'ordre d'apparition des points d’interrogation

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Merci pour votre réponse mais je n'arrive pas à bien cerner ce que vous dites au niveau des points d’interrogation. Merci

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Donc msdn nous dit :
    System.Data.OleDb => Uses positional parameter markers indicated by a question mark (?).
    donc :
    Utilise des marqueurs de paramètres positionnels indiqués par un point d'interrogation (?).
    Il nous dises donc que le marqueur est positionnel, qu'il dépend donc de sa position dans la requête et qu'il va falloir déclarer les paramètres dans l'ordre positionnel des points d’interrogation...

    donc dans le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql_ajouter = "INSERT INTO Membre (Matricule,dat_adh,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) "
    sql_ajouter &=  " VALUES( ?, ?, ? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? )"
    Le premier paramètre à ajouter est le matricule, ensuite dat_adh, etc, etc...
    Le nom du paramètre n'a plus d'importance du moment qu'il est unique.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Bonjour


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add("Val_nbre_enf", OleDb.OleDbType.Integer).value = nbr_enftxt
    ,
    Merci c'est ce que je fais mais cette ligne apparait en jaune disant
    Type de données incompatible dans l'expression du critère.
    Je ne sais pas comment faire ou bien dois-je le faire pour les autres champs? Merci

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Excusez moi je n'avais pas fait attention que vous utilisiez ExecuteReader (pourtant vous l'aviez bien marqué ), changez cette méthode par ExecuteNonQuery

  7. #7
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    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
     Public Sub INSERT()
            Dim sql_ajouter As String
            Dim cmd As OleDb.OleDbCommand
     
            sql_ajouter = "INSERT INTO Membre (Matricule ,dat_adh ,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) "
            sql_ajouter &= "VALUES([Val_Matricule?],[Val_dat_adh?],[Val_Nom?],[Val_Prenom?] ,[Val_dat_naiss?],[Val_sexe?],[Val_pays?],[Val_ville?],[Val_lang_parl?],[Val_tel?],[Val_cel?],[Val_nbre_enf?],[Val_typ_memb?],[Val_profession?],[Val_stat_marital?],[Val_depart?],[Val_autre_depart?],[Val_respo?]);"
            'TU DOIS DEFINIR Le TYPE DE CHAQUE PARAMETRE CORESPONDANT AU TYPE DE TON TABLEAU Membre
            'IL SE PEUT QUE TU DOIS FAIRE DES CONVERSIONS DE TYPE PARCE QUE TOUTES TES DONNEES VIENNENT DES TEXTBOXES 
            ' DONC DE TYPE STRING
     
            ' AUSSI NE PAS OUBLIER DE METTRE OPTION EXPLICIT  ON ET OPTION STRICT ON 
            ' ET DE RETIRER LA REFERENCE VISUALBASIC DE TON PROJET
            cmd.Parameters.Add("Val_Matricule?", ).Value = Matricule_txt.text
     
            cmd.Parameters.Add("Val_dat_adh?", ) = Dat_adhtxt.text
            cmd.Parameters.Add("Val_nom?", ) = Nom.Text
            cmd.Parameters.Add("Val_pren?", ) = Prenom.Text
            cmd.Parameters.Add("Val_dat_naiss?", ) = Dat_naisstxt.text
            cmd.Parameters.Add("Val_sexe?", ) = Sexe.text
            cmd.Parameters.Add("Val_pays?", ) = pays_txt.text
            cmd.Parameters.Add("Val_ville?", ) = ville_txt.text
            cmd.Parameters.Add("Val_lan?", ) = lang_parltxt.text
            cmd.Parameters.Add("Val_tel?", ) = tel_txt.text
            cmd.Parameters.Add("Val_cel?", ) = cel_txt.text
            cmd.Parameters.Add("Val_nbre_enf?", ) = nbr_enftxt.text
            cmd.Parameters.Add("Val_typ_memb?", ) = typ_txt.text
            cmd.Parameters.Add("Val_profession?", ) = profess_txt.text
            cmd.Parameters.Add("Val_stat_marital?", ) = statmar_txt.text
            cmd.Parameters.Add("Val_depart?", ) = depart_txt.text
            cmd.Parameters.Add("Val_autre_depart?", ) = autrde_txt.text
            cmd.Parameters.Add("Val_respo?", ) = respo_txt.text
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            'cmd.ExecuteReader()
            'cmd.ExecuteReader c'est pour les select les query qui rendent une réponse 
            ' la on utilise cmd.ExecuteNonQuery()
            cmd.ExecuteNonQuery()
            ' Fermeture de la connexion
            cmd.Connection.Close()
            ' On efface les  "textbox"
            Matricule_txt.Text = String.Empty
            Dat_adhtxt.Text = String.Empty
            Prenom.Text = String.Empty
            Nom.Text = String.Empty
            Dat_naisstxt.Text = String.Empty
            Sexe.Text = String.Empty
            pays_txt.Text = String.Empty
            ville_txt.Text = String.Empty
            lang_parltxt.Text = String.Empty
            tel_txt.Text = String.Empty
            cel_txt.Text = String.Empty
            profess_txt.Text = String.Empty
            nbr_enftxt.Text = String.Empty
            typ_txt.Text = String.Empty
            statmar_txt.Text = String.Empty
            depart_txt.Text = String.Empty
            respo_txt.Text = String.Empty
            autrde_txt.Text = String.Empty
     
     
     
        End Sub

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Merci le message d'erreur précédent n'apparait plus mais un autre apparait. En fait j'utilise un NumericUpDown et sa conversion échoue et j'ai cette ligne en jaune disant
    Échec de la conversion de la valeur de paramètre d'un NumericUpDown en int32
    Merci.

  9. #9
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    @ hugnka :
    Citation Envoyé par hugnka
    Merci le message d'erreur précédent n'apparait plus mais un autre apparait. En fait j'utilise un NumericUpDown et sa conversion échoue et j'ai cette ligne en jaune
    disant Échec de la conversion de la valeur de paramètre d'un NumericUpDown en int32 Merci.
    Vous pourriez mettre le code entier utilisé?

    Cette erreur provient à coup sur d'une utilisation d'un NumericUpDown sans la méthode value.

    @ shayw :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     sql_ajouter = "INSERT INTO Membre (Matricule ,dat_adh ,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) "
            sql_ajouter &= "VALUES([Val_Matricule?],[Val_dat_adh?],[Val_Nom?],[Val_Prenom?] ,[Val_dat_naiss?],[Val_sexe?],[Val_pays?],[Val_ville?],[Val_lang_parl?],[Val_tel?],[Val_cel?],[Val_nbre_enf?],[Val_typ_memb?],[Val_profession?],[Val_stat_marital?],[Val_depart?],[Val_autre_depart?],[Val_respo?]);"
    n'est pas valide, suivant la règle :
    The syntax for parameter placeholders depends on the data source. The .NET Framework data providers handle naming and specifying parameters and parameter placeholders differently. This syntax is customized to a specific data source, as described in the following table.

    Data provider

    Parameter naming syntax

    System.Data.SqlClient => Uses named parameters in the format @parametername.
    System.Data.OleDb => Uses positional parameter markers indicated by a question mark (?).
    System.Data.Odbc => Uses positional parameter markers indicated by a question mark (?).
    System.Data.OracleClient => Uses named parameters in the format :parmname (or parmname).
    C'est ceci qui est bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql_ajouter = "INSERT INTO Membre (Matricule,dat_adh,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo) "
    sql_ajouter &=  " VALUES( ?, ?, ? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? )"
    Voir cette page MSDN qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim queryString As String = "SELECT * FROM Table1 WHERE Field1 LIKE ?"
    Dim command As OleDbCommand = New OleDbCommand(queryString, connection)
    command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a"

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Ok merci et voici tout le code que j'utilise actuellement
    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
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    Imports System
    Imports System.Data
    Imports System.Data.OleDb.OleDbException
    Imports Microsoft.VisualBasic
    Imports System.Object
    Imports System.Data.OleDb
     
    Public Class Membre
     
        ' Déclaration des variables utilisées:
     
        ' N° de place de l'enregistrement
        Dim Place_Enregistrement As Integer
        ' Nombre total d'enregistrements dans la table Membre
        Dim Max_Enregistrements As Integer
        ' Notre objet connexion
        Dim con As New OleDb.OleDbConnection
        ' Notre dataset
        Dim ds As New DataSet
        ' La variable qui contient l'ID de l'enregistrement en cours
        Dim Val_ID As Integer
     
     
        Private Sub cmd_modifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_modifier.Click
     
            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand
            ' Déclaration de sql_modifier, qui contiendra la requête SQL permettant de modifier un enregistrement
            Dim sql_modifier As String
     
            ' On écrit notre requête et on l'assigne à la variable sql_modifier.
            ' Val_ID reprend la valeur ID de l'enregistrement affiché => Voir Navigation()
            sql_modifier = "UPDATE Membre SET pren=Val_modif_pren, nom=Val_modif_nom,Matricule=Val_modif_Matricule,dat_adh=Val_modif_dat_adh,dat_naiss=Val_modif_dat_naiss,sexe=Val_modif_sexe,pays=Val_modif_pays,ville=Val_modif_ville,lang_parl=Val_modif_lang_parl,tel=Val_modif_tel,cel=Val_modif_cel,nbre_enf=Val_modif_nbre_enf,typ_memb=Val_modif_typ_memb,profession=Val_modif_profession,stat_marital=Val_modif_stat_marital,depart=Val_modif_depart,autre_depart=Val_modif_autre_depart,respo=Val_modif_respo where ID=" & Val_ID & ""
     
            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_modifier, con)
     
            ' On définit les paramètres utilisés pour le bon déroulement de la requête
            ' On assigne à Val_modifier_Prenom" le texte contenu dans le textbox Prenom
            cmd.Parameters.AddWithValue("Val_modif_pren", Prenom.Text)
            ' On assigne à Val_modifier_Nom" le texte contenu dans le textbox Nom et ainsi de suite pour les autres champs
            cmd.Parameters.AddWithValue("Val_modif_nom", Nom.Text)
            cmd.Parameters.AddWithValue("Val_modif_Matricule", Matricule_txt)
            cmd.Parameters.AddWithValue("Val_modif_dat_adh", Dat_adhtxt)
            cmd.Parameters.AddWithValue("Val_modif_dat_naiss", Dat_naisstxt)
            cmd.Parameters.AddWithValue("Val_modif_sexe", Sexe)
            cmd.Parameters.AddWithValue("Val_modif_pays", pays_txt)
            cmd.Parameters.AddWithValue("Val_modif_ville", ville_txt)
            cmd.Parameters.AddWithValue("Val_modif_lang_parl", lang_parltxt)
            cmd.Parameters.AddWithValue("Val_modif_tel", tel_txt)
            cmd.Parameters.AddWithValue("Val_modif_cel", cel_txt)
            cmd.Parameters.AddWithValue("Val_modif_nbre_enf", nbr_enftxt)
            cmd.Parameters.AddWithValue("Val_modif_typ_memb", typ_txt)
            cmd.Parameters.AddWithValue("Val_modif_profession", profess_txt)
            cmd.Parameters.AddWithValue("Val_modif_stat_marital", statmar_txt)
            cmd.Parameters.AddWithValue("Val_modif_depart", depart_txt)
            cmd.Parameters.AddWithValue("Val_modif_autre_depart", autrde_txt)
            cmd.Parameters.AddWithValue("Val_modif_respo", respo_txt)
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            cmd.ExecuteReader()
            ' Fermeture de la connexion
            cmd.Connection.Close()
     
            ' Message indiquant que le contact a bien été modifié
            MsgBox("Le Membre a bien été modifié.", MsgBoxStyle.Information)
     
            ' On vide le dataset
            ds.Clear()
     
            ' et on le réaffiche en faisant appel à Connexion()
            ' pour que notre modification apparaisse bien
            Connexion()
        End Sub
     
        Private Sub cmd_fermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_fermer.Click
            Me.Close()
     
        End Sub
     
        Private Sub Membre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Start()
            ' (1) Nous devons d'abord nous connecter à notre BDD,
     
            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data source=" & My.Application.Info.DirectoryPath & "\Logiciel EDAJC.accdb"
            ' Nous souhaitons ensuite exécuter une requête (2),
            ' récupérer le résultat de cette requête dans un dataset (3) dès que la
            ' page se charge. Pour cela, nous faisons appel à Private Sub Connexion()
            Connexion()
     
     
     
     
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Label1.Visible = Not (Label1.Visible)
        End Sub
        Private Sub Connexion()
     
            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand
            ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
            Dim sql_tout_afficher As String
            sql_tout_afficher = "SELECT * FROM Membre"
            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_tout_afficher, con)
     
            ' Ouverture de la connexion
     
            cmd.Connection.Open()
     
            '(3) Récupération du résultat de la requête dans un dataset
            ' Déclaration de notre data adapter
            Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
            ' On sélectionne les enregistrements de la requête
            da.SelectCommand = cmd
            ' et on injecte les enregistrements dans le dataset
            da.Fill(ds, "Liste_Membre")
     
            ' Fermeture de la connexion
            cmd.Connection.Close()
            ' Calcul du nombre d'enregistrements dans la table Amis
            Max_Enregistrements = ds.Tables("Liste_Membre").Rows.Count
     
            ' Si la table ne contien aucun enregistrement, on désactive tous les boutons
            ' sauf le bouton ajouter
            If Max_Enregistrements = 0 Then
                cmd_modifier.Enabled = False
                cmd_suivant.Enabled = False
                cmd_precedent.Enabled = False
                cmd_premier.Enabled = False
                cmd_dernier.Enabled = False
                cmd_supprimer.Enabled = False
                Matricule_txt.Text = ""
                Dat_adhtxt.Text = ""
                Prenom.Text = ""
                Nom.Text = ""
                Dat_naisstxt.Text = ""
                Sexe.Text = ""
                pays_txt.Text = ""
                ville_txt.Text = ""
                lang_parltxt.Text = ""
                tel_txt.Text = ""
                cel_txt.text = ""
                profess_txt.Text = ""
                nbr_enftxt.Text = ""
                typ_txt.Text = ""
                statmar_txt.Text = ""
                depart_txt.Text = ""
                respo_txt.Text = ""
                autrde_txt.Text = ""
                ' Si la table n'est pas vide
            Else
     
                ' A l'ouverture de l'application et lorsqu'on insère un nouvel enregistrement
                ' on affiche le premier enregistrement de la table
                Place_Enregistrement = 0
                ' On appelle Private Sub Navigation()
                Navigation()
            End If
        End Sub
        Private Sub Navigation()
     
            ' Pour naviguer dans la table,nous utilisons la variable Place_Enregistrement
            ' déclarée en haut de cette page. On lui ajoutera ou  otera 1:
            ' +1 pour l'enregistrement suivant, -1 pour l'enregistrement précédent.
            ' La partie importante de ces lignes est rows(Place_Enregistrement): cela permet
            ' de nous déplacer dans les lignes du dataset.
     
     
            ' on assigne à Val_ID l'ID de l'enregistrement en cours (que l'on utilisera pour
            ' mettre à jour / modifier un enregistrement)
            Val_ID = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(0)
            ' On place ensuite les valeurs dans les textbox correspondant à chaque label
            Matricule_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(1)
            Dat_adhtxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(2)
            Nom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(3)
            Prenom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(4)
            Dat_naisstxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(5)
            Sexe.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(6)
            pays_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(7)
            ville_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(8)
            lang_parltxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(9)
            tel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(10)
            cel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(11)
            nbr_enftxt.TextAlign = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(12)
            typ_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(13)
            profess_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(14)
            statmar_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(15)
            depart_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(16)
            autrde_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(17)
            respo_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(18)
        End Sub
        Private Sub cmd_precedent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_precedent.Click
            ' -------------------------------------------
            ' Déplacement vers l'enregistrement précédent
            ' -------------------------------------------
     
            ' Pour passer à l'enregistrement précédent, on enlève 1 à Place_Enregistrement.
            ' Attention, Place_Enregistrement ne doit pas être plus petit que 0 (le premier 
            'enregistrement de la table est à la place 0 et non pas à la place 1):
     
            '-------------------------------------
            ' Enregistrement n°     |    Place n°
            '-------------------------------------
            ' 1er enregistrement    |   Place n°0
            '-------------------------------------
            ' 2ème enregistrement   |   Place n°1
            '-------------------------------------
            ' 3ème enregistrement   |   Place n°2
            '-------------------------------------
            ' 4ème enregistrement   |   Place n°3
            '-------------------------------------
     
            ' Max_Enregistrement = 4, il y a bien 4 enregistrements dans la table ci-dessus
            ' Max_Enregistrements - 1 = 3, en enlevant 1 au nombre total d'enregistrements,
            ' on trouve le numéro de la dernière place occupée.
     
            ' Si Place_Enregistrement est plus grand que 0 (cela signifie que nous sommes
            ' placés sur un enregistrement autre que le premier)
            If Place_Enregistrement > 0 Then
                ' on enlève 1 à Place_Enregistrement
                Place_Enregistrement = Place_Enregistrement - 1
                ' et on appelle la routine "Navigation" pour reculer
                Navigation()
                ' sinon, si Place_Enregistrement = 0
            ElseIf Place_Enregistrement = 0 Then
                ' un message nous indique que nous sommes placés sur le 1er enregistrement,
                ' donc inutile de reculer
                MsgBox("Ceci est le premier enregistrement.")
            End If
        End Sub
     
        Private Sub cmd_suivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_suivant.Click
            ' -----------------------------------------
            ' Déplacement vers l'enregistrement suivant
            ' -----------------------------------------
     
            ' Si Place_Enregistrement est différent de de Max_Enregistrements - 1 (cela
            ' signifie que nous sommes placés sur n'importe quel enregistrement sauf sur
            ' le dernier)
            If Place_Enregistrement <> Max_Enregistrements - 1 Then
                ' on ajoute 1 à Place_Enregistrement
                Place_Enregistrement = Place_Enregistrement + 1
                ' et on appelle la routine "Navigation"
                Navigation()
                ' sinon (Place_Enregistrement et Max_Enregistrements - 1 sont égaux)
            Else
                ' Un boîte de dialogue nous informe que nous sommes placés sur le
                ' dernier enregistrement
                MsgBox("Ceci est le dernier enregistrement.")
            End If
        End Sub
     
        Private Sub cmd_dernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_dernier.Click
            ' ------------------------------------------
            ' Déplacement vers le dernier enregistrement
            ' ------------------------------------------
     
            ' Pour passer au dernier enregistrement du dataset,il suffit de connaître
            ' le nombre d'enregistrements chargés dans le dataset (c'est la variable
            ' Max_Enregistrements)
     
            ' Si Place_Enregistrement est différent de Max_Enregistrements -1 
            If Place_Enregistrement <> Max_Enregistrements - 1 Then
                ' On les rend égaux
                Place_Enregistrement = Max_Enregistrements - 1
                ' et on se déplace sur le dernier enregistrement
                Navigation()
            Else
                ' un message nous indique que nous sommes déjà placés sur le dernier
                ' enregistrement donc inutile d'avancer
                MsgBox("Nous sommes déjà sur le dernier enregistrement.")
            End If
        End Sub
     
        Private Sub cmd_premier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_premier.Click
            ' ------------------------------------------
            ' Déplacement vers le premier enregistrement
            ' ------------------------------------------
     
            ' Se déplacer sur le premier enregistrementest simple, il suffit que 
            ' Place_Enregistrement soit égal à 0
     
            ' Si Place_Enregistrement est différent de 0
            If Place_Enregistrement <> 0 Then
                ' On lui assignela valeur 0
                Place_Enregistrement = 0
                ' Et on se déplace sur le premier enregistrement
                Navigation()
            Else
                ' un message nous indique que nous sommes déjà placés sur le premier
                ' enregistrement donc inutile de reculer
                MsgBox("Nous sommes déjà sur le premier enregistrement.")
            End If
     
        End Sub
     
        Private Sub cmd_enregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_enregistrer.Click
            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand
            ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
            Dim sql_ajouter As String
     
            ' On écrit notre requête et on l'assigne à la variable sql_ajouter
            sql_ajouter = "INSERT INTO Membre (Matricule,dat_adh,nom, pren,dat_naiss,sexe,pays,ville,lang_parl,tel,cel,nbre_enf,typ_memb,profession,stat_marital,depart,autre_depart,respo)"
            sql_ajouter &= "VALUES([Val_Matricule?],[Val_dat_adh?],[Val_Nom?],[Val_Prenom?] ,[Val_dat_naiss?],[Val_sexe?],[Val_pays?],[Val_ville?],[Val_lang_parl?],[Val_tel?],[Val_cel?],[Val_nbre_enf?],[Val_typ_memb?],[Val_profession?],[Val_stat_marital?],[Val_depart?],[Val_autre_depart?],[Val_respo?]);"
     
            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_ajouter, con)
     
            ' On définit les paramètres utilisés pour le bon déroulement de la requête
            ' On assigne à Val_pren" le texte contenu dans le prenom
            cmd.Parameters.AddWithValue("Val_Matricule", Matricule_txt)
            cmd.Parameters.AddWithValue("Val_dat_adh", Dat_adhtxt)
            ' On assigne à Val_Nomm" le texte contenu dans le nom
            cmd.Parameters.AddWithValue("Val_nom", Nom.Text)
            cmd.Parameters.AddWithValue("Val_pren", Prenom.Text)
            cmd.Parameters.AddWithValue("Val_dat_naiss", Dat_naisstxt)
            cmd.Parameters.AddWithValue("Val_sexe", Sexe)
            cmd.Parameters.AddWithValue("Val_pays", pays_txt)
            cmd.Parameters.AddWithValue("Val_ville", ville_txt)
            cmd.Parameters.AddWithValue("Val_lang_parl", lang_parltxt)
            cmd.Parameters.AddWithValue("Val_tel", tel_txt)
            cmd.Parameters.AddWithValue("Val_cel", cel_txt)
            cmd.Parameters.Add("Val_nbre_enf", OleDb.OleDbType.Numeric).Value = nbr_enftxt
            cmd.Parameters.AddWithValue("Val_typ_memb", typ_txt)
            cmd.Parameters.AddWithValue("Val_profession", profess_txt)
            cmd.Parameters.AddWithValue("Val_stat_marital", statmar_txt)
            cmd.Parameters.AddWithValue("Val_depart", depart_txt)
            cmd.Parameters.AddWithValue("Val_autre_depart", autrde_txt)
            cmd.Parameters.AddWithValue("Val_respo", respo_txt)
     
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            cmd.ExecuteNonQuery()
            ' Fermeture de la connexion
            cmd.Connection.Close()
     
            ' On efface les  "textbox"
            Matricule_txt.Text = ""
            Dat_adhtxt.Text = ""
            Prenom.Text = ""
            Nom.Text = ""
            Dat_naisstxt.Text = ""
            Sexe.Text = ""
            pays_txt.Text = ""
            ville_txt.Text = ""
            lang_parltxt.Text = ""
            tel_txt.Text = ""
            cel_txt.Text = ""
            profess_txt.Text = ""
            nbr_enftxt.Text = ""
            typ_txt.Text = ""
            statmar_txt.Text = ""
            depart_txt.Text = ""
            respo_txt.Text = ""
            autrde_txt.Text = ""
     
     
            ' Message indiquant que le nouveau membre a bien été enregistré
            MsgBox("Le nouveau membre a bien été enregistré.", MsgBoxStyle.Information)
     
            ' On vide le dataset
            ds.Clear()
     
            ' et on le réaffiche en faisant appel à Connexion()
            ' pour que notre nouveau contact apparaisse bien
            Connexion()
     
            ' Si la table contient 1 seul enregistrement après avoir cliqué sur le bouton ajouter
            ' il faut activer tous les boutons
            If Max_Enregistrements = 1 Then
                cmd_modifier.Enabled = True
                cmd_suivant.Enabled = True
                cmd_precedent.Enabled = True
                cmd_premier.Enabled = True
                cmd_dernier.Enabled = True
                cmd_supprimer.Enabled = True
            End If
        End Sub
     
        Private Sub cmd_supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_supprimer.Click
            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand
            ' Déclaration de sql_modifier, qui contiendra la requête SQL permettant de modifier un enregistrement
            Dim sql_supprimer As String
     
            ' On écrit notre requête et on l'assigne à la variable sql_supprimer.
            ' Val_ID reprend la valeur ID de l'enregistrement affiché => Voir Navigation()
            sql_supprimer = "DELETE from Membre where Matricule =" & Val_ID & ""
     
            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_supprimer, con)
     
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            cmd.ExecuteReader()
            ' Fermeture de la connexion
            cmd.Connection.Close()
     
            ' Message indiquant que le contact a bien été modifié
            MsgBox("Le Membre a bien été supprimé.", MsgBoxStyle.Information)
     
            ' On vide le dataset
            ds.Clear()
     
            ' et on le réaffiche en faisant appel à Connexion()
            ' pour que notre suppression soit bien prise en compte
            Connexion()
        End Sub
     
    End Class
    En fait sur mon interface,j'ai des NumericUpDown,des Combobx,des MaskedTextbox et des textBox.Peut-être que les erreurs viennent de là également qu'en pensez-vous Merci

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Dans ce code, aucune des remarques faites avant n'est appliqué, Il vous faut appliquer les remarques précédentes aussi non ca ne sert à rien de demander de l'aide .

    J'ajouterais que pour chaque valeur a donner à la requête, il faut donner la valeur et non le control.
    Donc :
    Pour les textBox il faut faire monTextBox.textPour les NumericUpDown il faut faire NumericUpDown.Valuece qui nous donnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.AddWithValue("Val_Matricule", Matricule_txt.Text)

  12. #12
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Sankasssss
    merci pour la correction
    System.Data.OleDb => Uses positional parameter markers indicated by a question mark (?).
    hugnka
    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.VisualBasic
    est ce que c'est vraiment nécessaire si tu codes en net on doit éviter
    l'import du vb6 il y a toujours un équivalent en vb.net

    2 tu as ta sub connexion
    pourquoi y ajouter une requete
    sql_tout_afficher = "SELECT * FROM Membre"
    ta sub connection doit servir seulement à établir la connection à ta BDD
    et aussi au lieu d'appeller la sub connexion à chaque fois
    appelle la une fois

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Excusez moi Mais ce problème vient d'être réglé c'est-à-dire que je retrouve tout ce que j'ai saisi dans la base sans soucis avec tous les champs remplis.
    Cependant j'ai un autre soucis dans ce 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
    ' Pour naviguer dans la table,nous utilisons la variable Place_Enregistrement
            ' déclarée en haut de cette page. On lui ajoutera ou  otera 1:
            ' +1 pour l'enregistrement suivant, -1 pour l'enregistrement précédent.
            ' La partie importante de ces lignes est rows(Place_Enregistrement): cela permet
            ' de nous déplacer dans les lignes du dataset.
     
     
            ' on assigne à Val_ID l'ID de l'enregistrement en cours (que l'on utilisera pour
            ' mettre à jour / modifier un enregistrement)
            Val_ID = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(0)
            ' On place ensuite les valeurs dans les textbox correspondant à chaque label
            Matricule_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(1)
            Dat_adhtxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(2)
            Nom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(3)
            Prenom.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(4)
            Dat_naisstxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(5)
            Sexe.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(6)
            pays_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(7)
            ville_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(8)
            lang_parltxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(9)
            tel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(10)
            cel_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(11)
            nbr_enftxt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(12)
            typ_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(13)
            profess_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(14)
            statmar_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(15)
            depart_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(16)
            autrde_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(17)
            respo_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(18)
        End Sub
    qui me permet de naviguer entre les différents enregistrements et j'ai cette erreur sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     respo_txt.Text = ds.Tables("Liste_Membre").Rows(Place_Enregistrement).Item(18)
    qui dit
    La conversion du type 'DBNull' en type 'String' n'est pas valide.
    J'avoue que là je suis un peu confus. Cela vient également d'être résolu mais seulement je veux que lorsque qu'on ait les dernier enregistrement s'afiicher hors moi j'ai toutes les données qui s'affichent mais pas le Matricule.
    Comment faire sachant que le Matricule représente ma clé primaire dans ma table MEMBRE.

    Merci

  14. #14
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut

    [ame="http://www.google.be/search?ix=seb&sourceid=chrome&ie=UTF-8&q=La+conversion+du+type+\'DBNull\'+en+type+\'String\'+n\'est+pas+valide"]La conversion du type \'DBNull\' en type \'String\' n\'est pas valide - Google zoeken[/ame].
    et premier résultat donne cette discussion de dvp.com

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    C'est réglé Merci
    Mais comment faire pour que lors de l'affichage de mon formulaire,je puisse voir s'afficher mon dernier enregistrement de la base?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un enregistrement dans une base Access
    Par tmonn dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/05/2012, 13h49
  2. Erreur lors de l'extraction de données dans une base Mysql5
    Par Klemsy78 dans le forum Bases de données
    Réponses: 10
    Dernier message: 26/01/2010, 13h18
  3. ajouter des données dans une base de données
    Par khallou2007 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/07/2009, 15h05
  4. Réponses: 3
    Dernier message: 10/03/2008, 23h43

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