Requête SQL - Access

Résolu
Goth25 Messages postés 75 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 21 mai 2014 - 11 juil. 2013 à 00:30
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 !

8 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
11 juil. 2013 à 01:26
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
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
11 juil. 2013 à 21:13
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
3
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
11 juil. 2013 à 00:59
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
0
Goth25 Messages postés 75 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 21 mai 2014
11 juil. 2013 à 03:14
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Goth25 Messages postés 75 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 21 mai 2014
11 juil. 2013 à 03:16
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 !
0
Goth25 Messages postés 75 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 21 mai 2014
11 juil. 2013 à 03:19
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 !
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 3
11 juil. 2013 à 11:09
salut, un petit coup d oeil sur ton update svp


Soyons Toujours à la disposition des autres (si la personne à bien posée son problem)
0
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
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 !
0
Rejoignez-nous