Requête SQL - Access [Résolu]

Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
- - Dernière réponse : Goth25
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
- 12 juil. 2013 à 00:05
Bonjour à tous,

J'éprouve actuellement de la difficulté avec une requête SQL.

La voici :

da = New OleDbDataAdapter("INSERT INTO tblUtilisateur " & _
"(MotDePasse) VALUE '" & txtMdp.Text & "' " & _
"SELECT * FROM tblUtilisateur " & _
"WHERE UtilisateurAD = '" & UtilisateurActif & "' " & ";", cn)

Dans ma table tblUtilisateur, Champ Mot de passe, je tente d'insérer un mot de passe stocker dans un control texte (txtMdp.text). Le tout pour un utilisateur précis déterminer par la variable UtilisateurActif.

Je ne reçois aucun message d'erreur, mais la modification ne se fait pas.

Quelqu'un aurais une petite idée de ce qui n'est pas correct ?


Merci à vous.







Bonne journée !
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
26557
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 octobre 2019
316
3
Merci
Oups,
autant pour moi.. il est temps que j'aille me coucher...
Tu souhaites mettre à jour le champ MotDePass d'un user déjà existant ?
Il faut donc utiliser UPDATE et non Insert

**..ben oui, suis-je bête, insert n'a pas de "Where"

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
Salut

Utilise des requetes parametré

d'abord si tu dois ajouter un password il faudrait peut etre verifier s'il n'existe pas
déja

voila un module

Imports System.Data.OleDb
Module db
    Private Connection As New OleDb.OleDbConnection 'declares  connection
Public Sub InitConnection()
Dim base As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\dta.mdb"
        Connection.ConnectionString = base
        Try
            Connection.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

Private Function IsPassWordExist(ByVal Password As String) As Boolean
       Dim sql As String = String.Empty
       Dim command As New OleDbCommand(sql, Connection)
        Dim recordset As OleDbDataReader
try

        recordset = Nothing
        command.CommandText "SELECT MotDePasse FROM tblUtilisateur WHERE MotDePasse [?] ;"
        command.Parameters.Add("?", OleDbType.BSTR).Value = Password 
        recordset = command.ExecuteReader()
        If recordset.HasRows Then
            Return True
        Else
            Return False
        End If
    Catch ex As Exception
      MessageBox.Show(ex.Message)
    End Try
    End Function

Public Function InsertPassWord(ByVal Password As String) As Boolean
    Dim strsql As String = String.Empty
    Dim command As New OleDbCommand(strsql, Connection)
try
        If IsPassWordExist(Password) Then
            Return False
        End If
        command.CommandText = "INSERT INTO tblUtilisateur (MotDePasse) VALUES (?);"
        command.Parameters.Add("?", OleDbType.BSTR).Value = Password
command.ExecuteNonQuery()
 Return True
Catch ex As Exception
   MessageBox.Show(ex.Message)
 End Try
End Function


pour utiliser le module db
dans le code de ta form
dans le load event

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        db.InitConnection()
    End Sub
'le client va ajouter son password et valider
'validate est un button  
Private Sub validate_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles validate.MouseClick

If db.InsertPassWord(txtMdp.text) then
 messagebox.show("le mot de passe a été ajouté")
else
messagebox.show("le mot de passe existe déja")
end if
 
End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
26557
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 octobre 2019
316
0
Merci
Bonjour,

Votre requête INSERT me parait étrange...
("INSERT INTO tblUtilisateur " & _ 
 "(MotDePasse) VALUE '" & txtMdp.Text & "' " & _ 
 "SELECT * FROM tblUtilisateur " & _ 
 "WHERE UtilisateurAD =  '" & UtilisateurActif & "' "


* Que vient faire le select ici ??
**VALUE(S) étant au pluriel...même s'il n'y en a qu'une

Une rapide recherche sur Internetvous aurait montrer que La syntaxe a utiliser pour un "INSERT" est la suivante :
INSERT INTO <NomTable> (<Champ>, <Champ2>?..) VALUES (<Valeur1>, <Valeur2>?.)


ce qui donnerait pour votre cas :
"INSERT INTO tblUtilisateur (MotDePasse) VALUES '" & txtMdp.Text & "'WHERE UtilisateurAD  = '" & UtilisateurActif & "' "



NB: lors de vos prochains messages sur le forum, merci d'utiliser la coloration syntaxique pour le code. (troisième icone en partant de la droite lors de la rédaction des messages)


Bonne journée !

Heu.. nuit pour moi.. mais merci.

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
0
Merci
Bonjour,

Merci beaucoup pour la rapidité de la réponse.


Par contre, je suis sur qu'il me manque de quoi. J'ai fait plusieurs recherches sur google, mais je n'arrive pas à faire un update de mon OleDbDataAdapter par la suite.

Voici ce que j'ai de fait :
modConnexionBD.ConnexionBD()


Voici le module :
 
le modConnexionBD
    Public ConnexionOLE As OleDbConnection = New OleDbConnection()
    Public da As OleDbDataAdapter
    Public ds As DataSet
    Public dv As DataView
    Public cb As OleDbCommandBuilder
    Public commande As OleDbCommand
    Public cn As OleDbConnection

Public Sub ConnexionBD()

        'Procédure permettant de se connecter à une base de donnée
        Try

            'initialise la chaîne Connexion avec une valeur qui indique le type (Provider) et le nom (Data Source) de la base de données à laquelle accéder
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\dta.mdb")
            cn.Open()

        Catch ex As Exception
            MessageBox.Show("Impossible d'établir la connexion à la base." & ex.Message)
        End Try

    End Sub



Par la suite, c'est ce que j'ai inscris plus haut avec votre correctif :

 da New OleDbDataAdapter("INSERT INTO tblUtilisateur (MotDePasse) VALUES '" & txtMdp.Text & "'WHERE UtilisateurAD '" & UtilisateurActif & "' ", cn)


Finalement, je ferme la connection
DeConnexionBD()



Je débute en Vb.net - ado.net, jusqu'à présent j'utilisais uniquement le Ado. Je suis certain qu'il ne me manque pas grand chose et j'ai vraiment le désire d'apprendre. J'ai fais plusieurs recherche, télécharger des bouts de codes et je n'arrive à rien

Je suis probablement rendu à l'étape de faire une mise à jour de l'adapter vers la base de données, mais comment procéder ? Je n'y arrive pas.


Merci à vous















Bonne journée !
Commenter la réponse de Goth25
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
0
Merci
Ah ne tenez pas compte de ma dernière intervention, je n'avais pas vue votre précédente. Je vais tester le tout.

Je vous remercie.




Bonne journée !
Commenter la réponse de Goth25
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
0
Merci
Bonjour,

Malgré le changement du INSERT INTO vers UPDATE, je n'ai plus d'erreur mais ne fonctionne toujours pas. La mise à jours ne se fait pas dans ma base





Bonne journée !
Commenter la réponse de Goth25
Messages postés
111
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
10 septembre 2019
3
0
Merci
salut, un petit coup d oeil sur ton update svp


Soyons Toujours à la disposition des autres (si la personne à bien posée son problem)
Commenter la réponse de remiki90
Messages postés
75
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
21 mai 2014
0
Merci
Merci beaucoup à tous,

Sa fonctionne très bien maintenant. Je vais enfin pouvoir développer de nouveau module et procédure à l'image de celle-ci à quelques petite modifications prêt.

Merci à vous, c'est très généreux.




Bonne journée !
Commenter la réponse de Goth25