Bonjour,

j'ai installé VS2022, je viens de VB6.0 et j'ai plus mis le nez dans du code depuis plusieurs années.
Je suis très rouillé on va dire.

J'ai quelques notions de SQL en tête et je bute sur un truc.

Voici l'exemple de code que j'utilise :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
    Private Sub Btn_Rechercher_Click_1(sender As Object, e As EventArgs) Handles Btn_Rechercher.Click
 
        'on vide le DataSet pour le charger avec
        'les données de la recherche
        dts.Clear()
 
        'si la case nom est cochée alors
        If Chk_Search_prenom.Checked = True Then
 
            'création de la requête,exécution de la commande,
            'remplissage du DataAdapter,du DataSet et de la DataTable
            sql = "select * from Table_test where Txt_Prenom = '" & Txt_search.Text & "'"
            cmd = New OleDbCommand(sql)
            dta = New OleDbDataAdapter(cmd)
            cmd.Connection() = cnx
            dta.Fill(dts, "Table_test")
            dtt = dts.Tables("Table_test")
 
            'si aucunes données existent pour ce nom alors
            If Rownum > dtt.Rows.Count - 1 Then
 
                Txt_search.Text = ""
                Txt_search.Focus()
                MessageBox.Show("Il n'existe aucunes données pour le prénom " & Txt_search.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                Exit Sub
 
            End If
 
        ElseIf Chk_Search_nom.Checked = True Then
 
            'création de la requête,exécution de la commande,
            'remplissage du DataAdapter,du DataSet et de la DataTable
 
            'L'usgae du like au lieu du = , permet d'utiliser les caractères joker dans le recherche
            sql = "select * from Table_test where Txt_Nom like '" & Txt_search.Text & "'"
            cmd = New OleDbCommand(sql)
                dta = New OleDbDataAdapter(cmd)
                cmd.Connection() = cnx
                dta.Fill(dts, "Table_test")
                dtt = dts.Tables("Table_test")
 
                'si aucunes données existent pour ce nom alors
                If Rownum > dtt.Rows.Count - 1 Then
 
                    Txt_search.Text = ""
                    Txt_search.Focus()
                    MessageBox.Show("Il n'existe aucunes données pour le nom " & Txt_search.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    Exit Sub
 
 
                Else
 
                'sinon afichage des données dans la Datagrid
                'et les textbox
                DataGridView1.DataSource = dtt
 
 
            End If
 
            MsgBox("Penser à recharger la base complète après le travail sur cette recherce (voir pour indication les numéros ID dans le label !")
 
        Else
 
            'aucune case n'est cochées donc
            MessageBox.Show("Vous devez spécifier un critère de recherche !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
 
        End If
 
 
 
    End Sub
Je me souviens que pour utiliser des caractères joker, il fallait utiliser le mot clef "LIKE", mais ici cela ne semble pas fonctionner.
J'ai essayé avec :
sql = "select * from Table_test where Txt_Nom like ?'" & Txt_search.Text & "'"
sql = "select * from Table_test where Txt_Nom like ?'" & Txt_search.Text & "'?"
sql = "select * from Table_test where Txt_Nom like '" & Txt_search.Text & "'"
Mais j'ai des erreurs systématiquement.
Avec quelques recherches sur le net, je n'arrive pas à voir ce qui cloche dans ce code et comment dans ma table j'ai plusieurs valeurs de types :
FICHIER
FICHIERS
FICHE
FART
FILES
je souhaiterais afficher les 3 premières lignes quand je tape "FIC*" ou "FIC" dans mon champ textbox.

Je me connecte à une base de donnée Access si cela peut avoir une importance.

Merci d'avance si vous pouvez m'aider.
David