Utilisation non autorisée de Null avec Label lié SQL

sephiroth27 Messages postés 34 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 31 octobre 2007 - 12 avril 2007 à 10:42
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 12 avril 2007 à 16:08
bonjours,
mon programme scan une base de donné qui contien 26 champs puis attribut a un label la valeur du champ d'une couleur diferente si selon si la valeur est positive ou negative.
Lorsque je scan ma BdD tout fonctionne correctement sauf le dernier champ(le 26) qui n'est pas attribué au label, un message d'erreur s'affiche "Utilisation non autorisée de Null" alors que le champs 26 comporte bien des données!

voici le morceau de code qui pose probléme :

Dim comBdD As New ADODB.Recordset
Dim maBdD As New ADODB.Connection
Dim maReq As String


Public Sub affichage()


maBdD.Provider = "Microsoft.jet.Oledb.4.0"
maBdD.ConnectionString = "C:\test.mdb"
maBdD.Open


maReq "SELECT * FROM pieces WHERE N°piece 'piece " & nb_piece - 1 & "' "
comBdD.Open maReq, maBdD
   
    Z = 17
         For h = 0 To 9
            If comBdD.Fields("variable" & Z) > 0 Then
                Form1.Label2(h).ForeColor = &HFF&
                Form1.Label2(h).Caption = comBdD.Fields("variable" & Z)
            Else
                Form1.Label2(h).ForeColor = &HFF00&
                Form1.Label2(h).Caption = comBdD.Fields("variable" & Z)
            End If
            Z = Z + 1
         Next h

Alors comment puis je résoudre ce probléme?
Merci d'avance

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
12 avril 2007 à 11:50
Vérifie bien que nb_piece ne va pas au delà du nombre d'enregistrement de ta bdd, car dans ce cas, tu n'aura pas d'enregistrement dans ton recordset.

Dans tout les cas, je te conseille de tester le nombre d'enregistrement de ton recordset avant toute chose :
maReq "SELECT * FROM pieces WHERE N°piece 'piece " & nb_piece - 1 & "' "
comBdD.Open maReq, maBdD
if comBdD.RecordCount > 0 Then  

    Z = 17
    '...

end if
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
12 avril 2007 à 16:05
tu fais 27 tours avec
Z=17
For h = 0 To 9

17+9 =26 mais tu commences à 0
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
12 avril 2007 à 16:08
pardon...!  10 tours
0