Findfirst en VB2010

cs_subaqua Messages postés 69 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 20 juin 2011 - 1 avril 2011 à 03:17
cs_subaqua Messages postés 69 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 20 juin 2011 - 4 avril 2011 à 08:26
Bonjour à tous.

Je programmais en VB6 et j'ai décidé de basculer sur VB2010. Je rencontre donc qq difficultés.
Entre autres, comment rechercher un enregistrement dans une table (issue d'une base Access) basé sur un critère ?
La fonction en vb6 est findfirst.

Ex : On a une table avec en champs N° Sécu, nom, prénom et on veut se positionner sur l'enregistrement dont le n° Sécu est contenu dans un textbox.

J'ai évidemment cherché sur différents forums mais n'ai pas trouvé une solution simple et efficace.

Merci pour vos réponses.

Subaqua.

6 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 avril 2011 à 12:53
Bonjour,

Utilises une requête SQL du format :
SELECT * From MaTable WHERE MonChamp=Valeur

0
cs_subaqua Messages postés 69 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 20 juin 2011
1 avril 2011 à 18:19
Est-ce que ça marche si, au lieu de mettre "MaTable", je mets le résultat d'une requête ?
Je voyais bien comment faire en vb6 mais en vB2010, je ne suis pas encore à l'aise avec la syntaxe.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 avril 2011 à 19:21
Bonjour,

Si tu as créé la requête dans Access, oui, sinon, montres ta requête source afin de voir comment arranger cela.

0
cs_subaqua Messages postés 69 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 20 juin 2011
3 avril 2011 à 13:52
Ci-dessous mon code :

'ouverture de la connexion(à partir du répertoire de l'application)sur la même ligne
cnxstr "provider microsoft.jet.oledb.4.0 ; data source = c:\30 - Opatom\bdd_essai.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
'Création de la requête sql à partir d'une liste déroulante liste_pays
sql = "select * from t_essai WHERE pays='" & liste_pays.value & "' ORDER by nom"
'Création de la commande et on l'instancie (sql)
cmd = New OleDbCommand(sql)
'Création du dataadapter (dta) et on l'instancie (cmd)
dta = New OleDbDataAdapter(cmd)
'On instancie la commande (cmd) à la connection (cnx)
cmd.Connection() = cnx
'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
dta.Fill(dts, "t_essai")
'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)
dtt = dts.Tables("t_essai")
'J"aimerais ici rechercher dans ma requête le nom d'une personne à partir de son n° de sécu
'l'instruction ci-dessous me donne le nom du 1er enregistrement de la requête ce qui ne m"intéresse pas
Me.Lb_text.Text = dtt.Rows(1).Item("nom")
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 avril 2011 à 16:56
Bonjour,

Voir :
http://www.generation-nt.com/filtrage-dataset-entraide-2331811.html
http://msdn.microsoft.com/fr-fr/library/bb669073.aspx

Sinon, le mieux si tu n'as qu'un seul item à afficher, serait d'utiliser un OleDataReader et de filtrer plus précisément à le requête.

0
cs_subaqua Messages postés 69 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 20 juin 2011
4 avril 2011 à 08:26
OK, merci bien pour tes réponses.
0
Rejoignez-nous