Message d'erreur

Signaler
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020
-
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
-
Salut,

j'ai un message d'erreur à chaque fois que je valide mes enregistrements, il s'agit de remplir une base de donnée à partir d'un formulaire en vb studio

voici le message d'erreur: Aucune valeur donnée pour un ou plusieurs paramètres requis.

j'ai vraiment besoin d'aide
help me please

7 réponses

Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
Bonsoir

Ce message veut dire qu'il manque un ou plusieurs paramètres requis.

Maintenant, si tu veux que l'on ait une toute petite chance de vraiment essayer de t'aider, il faudrait que tu postes le bout de code qui génère cette erreur.
Pour poster du code, il faut appliquer ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

voici mon parcours :

Private sub Enregistré_Click(sender as object, e as eventargd) handles enregistré. Click

Con.Open()
Dim add As new OleDbCommand
add.CommandText = " insertion into Sam (Nom, Postnom, Prénom, Sexe, Adresse, Téléphone) values (" & Nom.Text & ",'" & Postnom.Texte &"', & Prenom.Texte &"',
& Sexe.Texte &"', & Adresse.Texte &"', & Téléphone.Texte &"')"
add.Connection = Con
add.CommandType = CommandType.Text
add.ExecuteNonQuery()
msgbox("Enregistrement réussi")
Con.Close()

en sachant que j'utilise Access 2013 et les champs Adresse(Clé primaire) et téléphone sont de type Numérique

svp à l'aide
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
Je t'ai demandé de lire et appliquer un petit tuto pour poster le code.
Tu ne l'as pas fait et je n'ai pas envie de lire un code mal présenté.
J'y regarderai quand tu auras reposté ce code correctement.
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

En sachant que les champs Adresse(clé primaire) et Téléphone sont de type numérique


merci pour la correction
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

 Private sub Enregistré_Click(sender as object, e as eventargd) handles enregistré. Click

Con.Open()
    Dim add As new OleDbCommand 
add.CommandText = " insertion into Sam (Nom, Postnom, Prénom, Sexe, Adresse, Téléphone) values (" & Nom.Text & ",'" & Postnom.Texte &"', & Prenom.Texte &"',
& Sexe.Texte &"', & Adresse.Texte &"', & Téléphone.Texte &"')"
add.Connection = Con
add.CommandType = CommandType.Text
add.ExecuteNonQuery()
msgbox("Enregistrement réussi")
Con.Close()


En sachant que les champs adresse(clé primaire) et téléphone sont de type numérique

Merci pour la correction
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
Il est fortement déconseillé d'utiliser des accents dans les noms de champs, méthodes, propriétés, variables etc....
Les accents ne sont pas présents de la même façons dans toutes les langues et ils sont différemment codés selon les systèmes et les normes qui les gouvernent.

Cela dit revenons à ton problème
Nom.Text & ",'" & Postnom.Texte &"', & Prenom.Texte &"',
& Sexe.Texte &"', & Adresse.Texte &"', & Téléphone.Texte &"')"

Tu voies un des intérêts de la coloration syntaxique c'est que le texte est en rouge, les variable en noir et les commentaires en verts.
Donc là, supposons que Nom.Text vaille
"Dupond"
, Postnom.Text
"Jean"
et Sexe.Texte
"Homme"

ce bout de code retourne
"Dupond,'Jean', & Prenom.Texte &Homme', & Adresse.Texte &"

Il y a donc 4 paramètres
  • Dupond
  • 'Jean'
  • & Prenom.Texte &Homme'
  • & Adresse.Texte &

Or tu devrais en avoir 6 et en plus il faudrait qu'ils soient justes.

Construire des strings avec des & est fastidieux à écrire et une simple erreur de simple ou double cote et tout est foutu.

Je te conseille d'utiliser string.Format, c'est fait exprès pour intégrer le contenu de variables dans un texte type.

String.Format("{0},'{1}',{2},'{3}',{4},'{5}'", Nom.Text, Postnom.Texte, Prenom.Texte, Sexe.Texte, Adresse.Texte, Téléphone.Texte)

Comme tu le voies, j'ai écrit en une fois le texte type, les {x} signalent l'emplacement des données à intégrer, x étant l'index du paramètre dans la suite de la méthode
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

Vous pourriez svp explicité puisque je ne pas vraiment compris ce que vous venez de prescrire

merci
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
Mets un point d'arrêt sur la ligne
add.Connection = Con

et espionne le contenu de CommandText

SI tu ne sais pas faire ça voilà un tuto qui explique comment utiliser le débbogueur https://openclassrooms.com/fr/courses/1526901-apprenez-a-developper-en-c/2867766-utilisez-le-debogueur/

Si ensuite, tu ne comprends toujours pas de quoi je parle, c’est que tu as fais l’erreur de nombreux autodidactes (moi aussi en mon temps et je m’en suis mordu les doigts) => faire l’impasse sur les bases.

Le meilleur conseil que je puisse te donner, c’est de mettre ton projet de côté quelques jours, le temps de suivre un cours en ligne
Celui-ci par exemple, http://plasserre.developpez.com/cours/vb-net/
Un fois fait, tu ne seras pas un codeur aguerri (il faut bien plus que quelques jours pour ça) mais tu auras le socle nécessaire à ton apprentissage. Et au passage de comprendre mes messages d’aujourd’hui


Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

Salut,

après quelques mois d'apprentissage me voila de retour
je tien à vous remercier pour votre aide
j'ai suivi vos conseilles
et là j'ai essayé votre méthode sur l'utilisation de
String.Format("{0},'{1}',{2},'{3}',{4},'", tbnom.Text, tbpostnom.Text, tbrenom.Text, tbtel.Text, tbnum.Text

j'ai aussi utiliser le déboguer voilà le message d'erreur qui s'affiche:

Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus.

vous pourriez m'aider svp
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
A l'époque, je t'ai aussi dit d'exécuter en pas à pas et d'espionner le contenu des variables.
L'as tu fait?
Messages postés
10
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
10 septembre 2020

Ehh Oui, tout est presque bien présentement j'ai reçu à faire les enregistrements dans la base de données à partir du formulaire
et voir même supprimer et rechercher les enregistrements dans la base de données

voici la solution:
    Private Sub BunifuFlatButton1_Click(sender As Object, e As EventArgs) Handles ENREGISTREMENT.Click
        Dim cm As OleDb.OleDbCommand
        Dim sql_Rech As String
        sql_Rech = " select *from Osee Where NumIV='" & num.Text & "'"
        cm = New OleDb.OleDbCommand(sql_Rech, con)
        cm.Connection.Open()
        Dim dr1 As OleDbDataReader = cm.ExecuteReader
        If dr1.Read = True Then
            num.Text = dr1.Item(0)
            MsgBox("Numéro existe déjà", MsgBoxStyle.Information)

        ElseIf num.Text = "" Or nom.Text = "" Or post.Text = "" Or pre.Text = "" Or sexe.Text = "" Or adresse.Text = "" Or tel.Text = "" Then
            MsgBox("Aucun identifiant n'est saisie", vbInformation)
        Else
            Dim O As String
            O = MsgBox("Voulez-vous vraiment ajouter cet enregistrement ?", vbCritical + vbYesNo)
            If (O = vbYes) Then
                con.Open()
                Dim buela As New OleDbCommand
                buela.Connection = con
                Dim co As String = "insert into Osee(NumIV,Nom,Postnom,Prenom,Sexe,Adresse,Téléphone) values ('" + num.Text + "','" + nom.Text + "','" + post.Text + "','" + pre.Text + "','" + sexe.Text + "','" + adresse.Text + "','" + tel.Text + "')"
                buela.CommandText = co
                buela.CommandType = CommandType.Text
                buela.ExecuteNonQuery()
                MsgBox("Enregistrement réussi")
                num.Text = ""
                nom.Text = ""
                post.Text = ""
                pre.Text = ""
                sexe.Text = ""
                adresse.Text = ""
                tel.Text = ""
                num.Focus()
            Else
                O = vbNo
                MsgBox("Echec d'enregistremet", MsgBoxStyle.Critical)
                num.Text = ""
                nom.Text = ""
                post.Text = ""
                pre.Text = ""
                sexe.Text = ""
                adresse.Text = ""
                tel.Text = ""
                num.Focus()

            End If
        End If
        con.Close()
    End Sub
    Private Sub SUPPRIMER_Click(sender As Object, e As EventArgs) Handles SUPPRIMER.Click
        If num.Text = "" Then
            MsgBox("Saisissez un numero !")
        Else
            Dim W As String
            W = MsgBox("êtes-vous  sûr de pouvoir valider ce numéro ?", vbCritical + vbYesNo, )
            If (W = vbYes) Then
                Dim DEL As New OleDbCommand
                Dim sql_supprimer As String
                sql_supprimer = "delete from Osee where NumIV ='" & num.Text & "'"
                DEL = New OleDb.OleDbCommand(sql_supprimer, con)
                DEL.Connection.Open()
                DEL.ExecuteReader()
                DEL.Connection.Close()
                MsgBox("Validation réussi ")
            Else
                W = vbNo
                MsgBox(" Annulée", MsgBoxStyle.Critical)
            End If
            num.Clear()
            num.Focus()
        End If

    End Sub

Private Sub BunifuFlatButton2_Click(sender As Object, e As EventArgs) Handles RECHERCHER.Click
        If num.Text = "" Then
            MsgBox("Saisissez un numero à rechercher !")
        End If
        Dim cm As OleDb.OleDbCommand
        Dim sql_Rech As String
        sql_Rech = " select *from Osee Where NumIV='" & num.Text & "'"
        cm = New OleDb.OleDbCommand(sql_Rech, con)
        cm.Connection.Open()
        Dim dr1 As OleDbDataReader = cm.ExecuteReader
        If dr1.Read = True Then
            num.Text = dr1.Item(0)
            nom.Text = dr1.Item(1)
            post.Text = dr1.Item(2)
            pre.Text = dr1.Item(3)
            sexe.Text = dr1.Item(4)
            adresse.Text = dr1.Item(5)
            tel.Text = dr1.Item(6)
        Else

            MsgBox("Numéro invalide veuillez vérifier le numéro de l'invitation")
        End If
        cm.Connection.Close()

    End Sub


Mais j'ai un petit probleme je n'arrive pas modifier les enregistrements de ma base de données

voici les codes que j'utilise :
 Private Sub BunifuFlatButton3_Click(sender As Object, e As EventArgs) Handles MODIFIER.Click
        Dim modifi As OleDb.OleDbCommand
        Dim sql_modifi As String
        sql_modifi = " UPDATE Osee SET NumIV='" & num.Text & "',Nom = '" & nom.Text & "',Postnom = '" & post.Text & "',Prenom = '" & pre.Text & "',Sexe = '" & sexe.Text & "',Adresse = '" & adresse.Text & "',Téléphone = '" & tel.Text & "'"
        modifi = New OleDb.OleDbCommand(sql_modifi, con)
        modifi.Connection.Open()
        modifi.ExecuteReader()
        modifi.Connection.Close()
        MsgBox("modification effectuée")
End sub

il y a t-il des erreurs dans ces codes ?
si vous pourriez m'aider svp
Messages postés
14730
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 septembre 2020
431
Le 4 avril, je t'ai expliqué qu'utiliser string.format évite de faire des erreurs bêtes dans la construction de string....

A partir du moment où tu ne tiens pas compte de ce qu'on te conseille pourquoi continuer à t'aider?