VB.Net / Base Access plante si résultat vide
Bonjour :)
J'ai programmé un petit logiciel en VB.net sans prétention pour gerer des enregistrement dans une base de données en access 2003.
Débutant dans la prog, j'ai récupéré un bout de code sur le net avec un module pour se connecter à la base access.
module1.vb
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Imports System.Data.OleDb
Module Module1
Public acsconn As New OleDb.OleDbConnection
Public acscdr As OleDbDataReader
Public strsql As String
Sub connect()
acsconn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; data source= d:\base.mdb;"
acsconn.Open()
End Sub
End Module |
et le form1.vb
Code:
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
|
Public Class Form1
'combo NOM
Sub fillcomboNom()
strsql = "select distinct (nom) from membres order by nom"
Dim acscmd As New OleDb.OleDbCommand
acscmd.CommandText = strsql
acscmd.Connection = acsconn
acscdr = acscmd.ExecuteReader
While (acscdr.Read())
ComboBoxNom1.Items.Add(acscdr("nom"))
End While
acscmd.Dispose()
acscdr.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Module1.connect()
Me.fillcomboNom()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxNom1.SelectedIndexChanged
strsql = "select * from membres where nom='" & ComboBoxNom1.Text & "'"
Dim acscmd As New OleDb.OleDbCommand
acscmd.CommandText = strsql
acscmd.Connection = acsconn
acscdr = acscmd.ExecuteReader
If (acscdr.Read() = True) Then
TextBox1.Text = (acscdr("Prénom"))
TextBox2.Text = (acscdr("Adresse1"))
End If
acscmd.Dispose()
acscdr.Close()
End Sub
End Class |
Tout va bien, quand je change la valeur dans le combobox, le TextBox1 et le TextBox2 se remplissent bien avec le prénom et l'adresse récupérées dans la base de données.
Par contre, s'il arrive qu'un champ de la base de données soit vide, le logiciel se plante.
Il y a peut être une exception à gérer, mais de quelle façon ?
Merci de votre aide pour un newbie :)