Bonjour,

Je cherche à effectuer une requête (genre LIKE) sur une base Access(2000), qui doit aboutir dans un Datagrid.
Je me suis inspiré de cette source pour établir le code
http://www.issociate.de/board/goto/7...arameters.html
Si je fais LIKE 'BLABLA%' j'obtiens les résultats dans mon Datagrid, donc '%' fonctionne bien. Dès que j'introduit '?%' les problèmes commencent... j'obtiens l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll
en pointant la ligne : da.Fill(Dataset11)

Voici mon code avec une des tentatives :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub FrmTitre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim iData As IDataObject = Clipboard.GetDataObject()      ' récupération du texte depuis le Clipboard
        If iData.GetDataPresent(DataFormats.Text) Then
            Txtbox1.Text = CType(iData.GetData(DataFormats.Text), String)
        Else
            Txtbox1.Text = "Impossible de récupérer le texte"
        End If
 
        Dim conn As OleDbConnection
        conn = OleDbConnection1
        Dim da As OleDbDataAdapter = New OleDbDataAdapter
        Dim cmd As OleDbCommand
        cmd = New OleDbCommand("SELECT CodeDVD, TitreOrigine, TitreTraduit, Divers, Annee FROM Films " & _
                     "WHERE (CodeSupport=1) AND (TitreOrigine LIKE '%' + [at]name + '%') ORDER BY TitreOrigine", conn)
        cmd.Parameters.Add("@CodeDVD", OleDbType.Integer, 8)
        cmd.Parameters.Add("@TitreOrigine", OleDbType.VarChar, 100)
        cmd.Parameters.Add("@TitreTraduit", OleDbType.VarChar, 100)
        cmd.Parameters.Add("@TitreOrigine", OleDbType.VarChar, 100)
        cmd.Parameters.Add("@Divers", OleDbType.VarChar, 100)
        cmd.Parameters.Add("@Annee", OleDbType.Numeric, 8)
        cmd.Parameters.Add(New OleDbParameter("[at]name", OleDbType.VarChar, 20)).Value = Txtbox1.Text
        da.SelectCommand = cmd
        DataSet11.Clear()
        da.Fill(DataSet11, "Films")
    End Sub
Mon code est mauvais (c'est bien possible... ) ou ce que je demande de faire n'est pas possible avec Access ? Une autre manière de procéder peut-être ?
PS : Les champs faisant l'objet des requêtes ne sont pas des clés primaires.
Apès 3 semaines de recherches un peu d'aide ferait plaisir...
Merci d'avance.