Requête SQL - Access [Résolu]

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

Votre réponse

8 réponses

Meilleure réponse
jordane45 22528 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 22 septembre 2018 Dernière intervention - 11 juil. 2013 à 01:26
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

Merci jordane45 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jordane45
Meilleure réponse
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 11 juil. 2013 à 21:13
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

Merci cs_ShayW 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_ShayW
jordane45 22528 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 22 septembre 2018 Dernière intervention - 11 juil. 2013 à 00:59
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
Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - 11 juil. 2013 à 03:14
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
Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - 11 juil. 2013 à 03:16
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
Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - 11 juil. 2013 à 03:19
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
remiki90 107 Messages postés samedi 28 juillet 2012Date d'inscription 11 mars 2018 Dernière intervention - 11 juil. 2013 à 11:09
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
Goth25 75 Messages postés samedi 26 juillet 2003Date d'inscription 21 mai 2014 Dernière intervention - 12 juil. 2013 à 00:05
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.