elwadeh
Messages postés55Date d'inscriptionsamedi 11 avril 2009StatutMembreDernière intervention28 juin 2018
-
13 avril 2011 à 04:29
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
13 avril 2011 à 17:34
Bonjour,
j'ai une BDD access.
dans mon form j'ai une procedure d'ajout, alors ce que je veux c'est quand je veux ajouté par exemple un employé il fait premièrement une recherche dans la BDD alors s'il existe il m'affiche un Msgbox "employé deja existant" si non il valide mon ajout.
merci
'connexion base de données
conn "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\amc.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
'-----------------------------------------------------------
'exécution de la commande(cmd),
'du dataadapter (dta),
'du dataset(dts),
'de la datatable (dtt)
'sql=>cmd=>dta
'cnx=>cmd
'dta=>dts=>dtt
sql = "select police.* from police"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
'chargement du DataSet à partir du DataAdapter
dta.Fill(dts, "police")
'chargement de la DataTable à partir du DataSet
dtt = dts.Tables("police")
Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
'controle des champs-si un champ n'est pas rempli fin de procédure
'Try
If TextBox1.Text "" Or TextBox2.Text "" Or TextBox3.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Or TextBox12.Text = "" Or TextBox13.Text = "" Or TextBox14.Text = "" Or TextBox15.Text = "" Or TextBox16.Text = "" Or MaskedTextBox1.Text = "" Then
MessageBox.Show("Vous devez remplir tous les champs !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.TextBox1.Focus()
Exit Sub
End If
sql = "select police.* from police"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
'chargement du DataSet à partir du DataAdapter
dta.Fill(dts, "police")
'chargement de la DataTable à partir du DataSet
dtt = dts.Tables("police")
'ajout de la ligne dans le DataSet
dts.Tables("police").Rows.Add(dtr)
'création et exécution du commandbuilder
'pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)
'mise à jour des données du DataAdapter
'à partir du commandbuilder
dta.Update(dts, "police")
MessageBox.Show("Police ajoutée avec succés", "Administrateur...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
'on vide le dataset pour le recréer avec
'les nouvelles données
dts.Clear()
dta.Fill(dts, "police")
dtt = dts.Tables("police")
'**********************************************************
'mise à jour de la datagrid
'DataGrid1.SetDataBinding(dts, "produ")
'vider les textbox
Dim frm As New Form1
Me.Close()
frm.Show()
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 13 avril 2011 à 13:27
Comme je te l'ai dit dans mon précédent post, il fallait poster uniquement le code qui sert à rechercher un nom déjà existant, or là je n'ai rien vu qui s'en rapproche.
Poste UNIQUEMENT le code SQL qui te sert à savoir si un employé existe déjà ou non. Et en utilisant la 3ème icône à partir de la droite si c'est du code VB.
elwadeh
Messages postés55Date d'inscriptionsamedi 11 avril 2009StatutMembreDernière intervention28 juin 20181 13 avril 2011 à 16:10
Bonjour,
justemet ce que je cherche c'est le code pour detecter si l'enregistrement exite ou non.
alors le code que j'ai posté c'est pour l'ajout d'un nouveau enregistrement.
ce que je veux c'est quand je saisie le numéro de police dans le textbox et je veux valider il faut qu'il me bloque pour numéro de police déjà existant.
merci encore pour votre intention à mon problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 13 avril 2011 à 16:21
Fais une requête SQL du style
MyRecordset.Open SELECT MyField INTO MyTable
WHERE MyField = MyValue
IF MyRecordset.Recordcount > 0 'Enreg déjà existant
où MyRecordset est un recordset valide qui recevra les éventuels enregistrements trouvés.
MyField = le champ à chercher
MyTable = Ta table
MyValue = la valeur de ta textbox
Attention, 2 choses, vérifie que ton recordset à sa propriété CursorLocation = adUseClient sinon tu n'auras pas accès au Record>Count.
En plus la clause WHERE est à modifer en tenant compte du type du champ recherché en sachant que la valeur d'un TextBox est du type String.
Je t'ai mis ça de tête, en cas de problème poste ton erreur.
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 13 avril 2011 à 17:34
Excuse, j'avais zappé que tu travailles avec ADO .NET.
Je ne connais pas l'équivalent du Recordset.
C'est l'objet qui contient un ensemble d'enregistrements après une requête SQL.
Regarde dans la doc le nom sous .NET.