Bonjour,
Me voici confronté a un épineux problème.
Je travaille en VB.NET et j'effectue des requêtes sql dans une base de données Access.
J'ai une requête qui fonctionne admirablement bien quand elle retourne quelque chose de concret. Par contre quand elle ne retourne rien j'ai un message d'erreur qui s'affiche lors de la compilation et qui arrête la compilation ce qui est fort dommageable puisque dans certain cas de figure dans mes reqûetes il n'y a rien a retourner. Merci d'avance.
En vb 6 il y avait une instruction conditionnelle qui informait l'utilisateur que la requête ne retournait rien :
En vb.net je n'ai pas trouvé d'instruction équivalente. J'ai essayé des choses avec BOF et EOF mais sans succès. Je recherche avant le Do While une instruction conditionnelle ou autre qui me permettrait de ne pas rentrer dans la boucle s'il n'y a rien à retourner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 If rst.EOF = True Then msgbox "pas de données" else While Not (rst.EOF) .... rst.MoveNext Wend end if
Quelqu'un aurait-il une idée ?
Voici la requête :
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 '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;") Dim cmd As New OleDb.OleDbCommand( _ "SELECT Min(FicRen_CompStadeComp.NumeroCompetitionStadeCompetition) AS var_min, Count([FicRen_CompStadeComp].[NumeroCompetitionStadeCompetition]) AS var_count " & _ "FROM CompetitionsStadeCompetition INNER JOIN FicRen_CompStadeComp ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition " & _ "WHERE (CompetitionsStadeCompetition.Competition = ""Championnat"") AND (FicRen_CompStadeComp.Rencontre = ""Joué"");", con) con.Open() Dim dt As New DataTable Dim rs As New DataSet Dim data_reader As Data.IDataReader = cmd.ExecuteReader() If ??? then Do While data_reader.Read() variable_valeur_minimum = data_reader.GetValue(0) variable_valeur_count = data_reader.GetValue(1) Loop Else msgbox "la requête ne retourne aucune donnée" End if con.Close()
Partager