Bonjour,
Je suis confronté à un problème (le programme est arrêté) lorsque je fais 2 requêtes (avec choix conditionnel de l'une d'elle) lors du lancement d'une procédure comprenant une connexion unique à la base de données.
La ligne de code en vert indique le message suivant :
La référence d'objet n'est pas définie à une instance d'un objet.
Lorsque je supprime la boucle conditionnelle et la deuxième requête le programme tourne normalement.
Comment faire pour effectuer plusieurs requêtes dans une même procédure, quelqu'un aurait-il une idée ?


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
Private Sub affichage_journee_championnat_ou_play_off_a_encoder()
        FramePresentationEquipesRencontresMultiples.Visible = True
        FramePresentationEquipesRencontresMultiples.Location = New System.Drawing.Point(250, 250)

        ListBoxFramePresentationEquipesRencontresMultiples.View = View.Details
        ListBoxFramePresentationEquipesRencontresMultiples.GridLines = True
        ListBoxFramePresentationEquipesRencontresMultiples.FullRowSelect = True
        ListBoxFramePresentationEquipesRencontresMultiples.HideSelection = False
        ListBoxFramePresentationEquipesRencontresMultiples.MultiSelect = False
        ' création des entêtes de colonnes
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Stade Competition", 70, HorizontalAlignment.Center)
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Date", 70, HorizontalAlignment.Center)
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Heure", 70, HorizontalAlignment.Center)
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Equipe visitée", 70, HorizontalAlignment.Center)
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Equipe visiteuse", 70, HorizontalAlignment.Center)
        ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Saison", 20, HorizontalAlignment.Center)



        'connexion à la base de données
        Dim con As OleDb.OleDbConnection
        con = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= C:\Users\jean-jacques\Desktop\EI\Delegue.mdb;")
        If (var_etat_championnat = True) And (var_etat_playoff = False) Then
            Dim cmd As New OleDb.OleDbCommand( _
                    "SELECT CompetitionsStadeCompetition.Competition, FicRen_CompStadeComp.NumeroCompetitionStadeCompetition, FicRen_CompStadeComp.Date, FicRen_CompStadeComp.Heure, Clubs.NomClub, Clubs_1.NomClub, FicRen_CompStadeComp.Rencontre, FicRen_CompStadeComp.AnneeRencontresChampionnat " & _
                    "FROM CompetitionsStadeCompetition INNER JOIN (Clubs INNER JOIN (FicRen_CompStadeComp INNER JOIN Clubs AS Clubs_1 ON FicRen_CompStadeComp.NumeroEquipeVisiteuse = Clubs_1.NumeroClub) ON Clubs.NumeroClub = FicRen_CompStadeComp.NumeroEquipeVisitee) ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition " & _
                    "Where (CompetitionsStadeCompetition.Competition = ""Championnat"") and (CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = " & variable_valeur_minimum & ");", con)        
Else
            Dim cmd As New OleDb.OleDbCommand( _
                    "SELECT CompetitionsStadeCompetition.Competition, FicRen_CompStadeComp.NumeroCompetitionStadeCompetition, FicRen_CompStadeComp.Date, FicRen_CompStadeComp.Heure, Clubs.NomClub, Clubs_1.NomClub, FicRen_CompStadeComp.Rencontre, FicRen_CompStadeComp.AnneeRencontresChampionnat " & _
                    "FROM CompetitionsStadeCompetition INNER JOIN (Clubs INNER JOIN (FicRen_CompStadeComp INNER JOIN Clubs AS Clubs_1 ON FicRen_CompStadeComp.NumeroEquipeVisiteuse = Clubs_1.NumeroClub) ON Clubs.NumeroClub = FicRen_CompStadeComp.NumeroEquipeVisitee) ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition " & _
                    "Where (CompetitionsStadeCompetition.Competition = ""PlayOff1"") and (CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = " & variable_valeur_minimum & ");", con)        
End If
        con.Open()
        Dim data_reader As Data.IDataReader = cmd.ExecuteReader   
Do While data_reader.Read()
            Dim new_item As New  _
            ListViewItem(data_reader.Item("Competition").ToString)
            new_item.SubItems.Add(data_reader.Item("NumeroCompetitionStadeCompetition").ToString)
            new_item.SubItems.Add(data_reader.Item("Date").ToString)
            new_item.SubItems.Add(data_reader.Item("Heure").ToString)
            new_item.SubItems.Add(data_reader.Item("Clubs.NomClub").ToString)
            new_item.SubItems.Add(data_reader.Item("Clubs_1.NomClub").ToString)
            new_item.SubItems.Add(data_reader.Item("AnneeRencontresChampionnat").ToString)
            ListBoxFramePresentationEquipesRencontresMultiples.Items.Add(new_item)

            Debug.WriteLine(new_item.Text & " : " & _
                new_item.SubItems(0).Text & ", " & _
                new_item.SubItems(1).Text & ", " & _
                new_item.SubItems(2).Text & ", " & _
                new_item.SubItems(3).Text & ", " & _
                new_item.SubItems(4).Text & ", " & _
                new_item.SubItems(5).Text)
        Loop
        con.Close()



        Dim wid As Integer
        For i As Integer = 0 To ListBoxFramePresentationEquipesRencontresMultiples.Columns.Count - 1
            ListBoxFramePresentationEquipesRencontresMultiples.Columns(i).Width = -2
            wid += ListBoxFramePresentationEquipesRencontresMultiples.Columns(i).Width
        Next i