Option de recherche

Résolu
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 - 22 avril 2010 à 20:20
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 23 avril 2010 à 09:40
Bonjour,
j'ai un problème quand je veux programmer la recherche dans une application, alors voila les élémments que j'ai:
- une Base de données : bdcom
- une table : tablecom

voila mon code :
-----------------
Imports System.Data
Imports System.Data.OleDb
Public Class Form3
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\bdcom.mdb"
Dim conn As New OleDbConnection(constr)
Dim dataset1 As New DataSet
Dim sqlstr As String
Private Sub Button1_rech(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.rech
If TextBox1.Text = ("") Then
MsgBox("Le champ de recherche ne peut pas être vide", MsgBoxStyle.Critical)
End If
conn.Open()
Dim dataAdapter1 As New OleDbDataAdapter(sqlstr, conn)
dataAdapter1.Fill(dataset1, "tablecom")
conn.Close()
sqlstr "select * from tablecom where n°police '" & TextBox1.Text & "'"
TextBox2.DataBindings.Add("text",dataset1, "tablecom.commercial")
TextBox8.DataBindings.Add("text", dataset1, "tablecom.marque")
TextBox3.DataBindings.Add("text", dataset1, "tablecom.n°dossier")
TextBox4.DataBindings.Add("text", dataset1, "tablecom.n°police")
TextBox5.DataBindings.Add("text", dataset1, "tablecom.client")
TextBox6.DataBindings.Add("text", dataset1, "tablecom.prime")
TextBox7.DataBindings.Add("text",dataset1, "tablecom.commission")
If Me.BindingContext(dataset1, "tablecom").Count = 0 Then
MsgBox("Enregistement introuvable, Veuillez réssayer")
Exit Sub
End If


voila l'erreur qu'elle apparait pendant l'execution
---------------------------------------------------------
Aucun texte de commande n'a été défini pour l'objet de commande.

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 avril 2010 à 23:16
Salut
Voilà 2 choses qu'on répète au moins 10 fois par semaine :
- Si le nom d'un champ (ou d'une table) comporte des caractères spéciaux ou des espaces, il faut les encadrer avec des crochets [ et ]
- Si le champ est défini dans la base de données comme un numérique, il ne faut pas encadrer sa valeur (pas de ' )

Ce qui donnerait :
sqlstr "select * from tablecom where [n°police] " & TextBox1.Text

D'autre part, tu définis ta chaine de requète SQL après l'avoir founie à ton dataAdapter1 !
Je vois mal comment il pourrait en tenir compte !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 3
23 avril 2010 à 00:02
bonsoir,
alors qu'elle est la solution pour le deuxième cas car l'erreur est dans cette ligne :

da.Fill(dataset1, "tablecom")
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 avril 2010 à 09:40
Contrairement à ce que tu m'as dit dans ton message privé, ce n'est pas à moi de faire au mieux pour te fournir des réponses, mais à toi d'approfondir tes recherches pour comprendre et tester les solutions.

Commence par ouvrir l'aide : tu cliques sur le mot .Fill et tu appuies sur F1 : il y a des exemples tout cuits !
Sans compter sur les exemples de code que tu trouveras sur le site.
0
Rejoignez-nous