Bonjour à tous
Dans une application qui gère une BDD de DVD j'ai 2 forms d'interrogation, un pour trouver un titre et un pour trouver un rôle

voici le code pour titre

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
Public Class InterroTitre
   Private Sub Titre_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Titre.KeyDown
        Dim L As String = "'"
        If InStr(Titre.Text, L) <> 0 Then
            MsgBox("Ne pas saisir ' si un titre en contient !", 48, "Collection de DVD")
            Titre.Text = Nothing
        End If
        If (e.KeyCode = Keys.Enter) Then
            e.SuppressKeyPress = True
            RésultatTitre.Show()
        End If
    End Sub
 
    Private Sub BtnFermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click
        Close()
    End Sub
End Class
et le code pour rôle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Public Class InterroRole
    Private Sub TxtRole_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtRole.KeyDown
        If (e.KeyCode = Keys.Enter) Then
            e.SuppressKeyPress = True
            RésultatRole.Show()
        End If
    End Sub
 
    Private Sub BtnFermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click
        Close()
    End Sub
End Class
Ensuite voici les codes pour les forms du résulatat trouvé

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
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Public Class RésultatRole
    Inherits System.Windows.Forms.Form
    Private WithEvents MonRS As New ADODB.Recordset
 
    Private Sub RésultatRole_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TxtRole.Text = InterroRole.TxtRole.Text
        Me.Text = "Films avec '" & TxtRole.Text & "'" & " comme rôle"
        Dim MaConn As New ADODB.Connection
        MaConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
        "C:\Access\DvdData.mdb"
        MaConn.Open()
        With MonRS
            .ActiveConnection = MaConn
            .CursorLocation = ADODB.CursorLocationEnum.adUseClient
            .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
            .LockType = ADODB.LockTypeEnum.adLockReadOnly
            .Open("SELECT * FROM Vidéo WHERE Role1 like '%" & TxtRole.Text & "%' OR Role2 like '%" & TxtRole.Text & "%'" & _
    "OR Role3 like '%" & TxtRole.Text & "%' OR Role4 like '%" & TxtRole.Text & "%'" & _
        "OR Role5 like '%" & TxtRole.Text & "%' OR Role6 like '%" & TxtRole.Text & "%'" & _
        "OR Role7 like '%" & TxtRole.Text & "%' OR Role8 like '%" & TxtRole.Text & "%'" & _
        "OR Role9 like '%" & TxtRole.Text & "%' OR Role10 like '%" & TxtRole.Text & "%'")
        End With
        Dim nbrecords As Integer
        nbrecords = MonRS.RecordCount
        If nbrecords = 0 Then
            MsgBox("Pas de film avec ce rôle !", 48, "Collection de DVD")
            Me.Close()
        End If
        BtnFermer.Focus()
        BtnFermer.Select()
    End Sub

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
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
 
Public Class RésultatTitre
    Inherits System.Windows.Forms.Form
    Private WithEvents MonRS As New ADODB.Recordset
 
    Private Sub RésultatTitre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TxtInterroTitre.Text = InterroTitre.Titre.Text
        Me.Text = "Films contenant les mots '" & TxtInterroTitre.Text & "'"
        Dim MaConn As New ADODB.Connection
        MaConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
        "C:\Access\DvdData.mdb"
 
        MaConn.Open()
        With MonRS
            .ActiveConnection = MaConn
            .CursorLocation = ADODB.CursorLocationEnum.adUseClient
            .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
            .LockType = ADODB.LockTypeEnum.adLockReadOnly
            .Open("SELECT * FROM Vidéo WHERE TitreFilm like '%" & TxtInterroTitre.Text & "%'")
        End With
        Dim nbrecords As Integer
        nbrecords = MonRS.RecordCount
        If nbrecords = 0 Then
            MsgBox("Pas de titre de film contenant ce mot!", 48, "Collection de DVD")
            Me.Close()
        End If
        BtnFermer.Focus()
        BtnFermer.Select()
    End Sub

Quand je cherche un rôle qui n'existe pas, j'ai bien le message , je ferme donc le form InterroRole et tout va bien
Par contre pour titre, quand rien ne correspond j'ai bien le message et c'est quand je ferme le form interroTitre que ça se plante
avec un message comme quoi le form résultatTitre n'existe pas
J'ai comparé les codes mot à mot et je ne vois pas mon erreur
alors si vous avez une idée elle sera comme toujours la bienvenue
Merci d'avance