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 : 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
 
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 : 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
 
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