Alors, Dim a, b As Integer, c te déclare trois variables :
a qui est de type Variant, b qui est de type Integer, et c qui est de type Variant.
Pourquoi ? Par que seul b a un type définit, les deux autres n'ayant pas de type spécifié, VB les interprête comme des types "indéfinits" qui peuvent prendre n'importe quel type de valeur, autrement dit, ce sont des types Variant.
Dim c As Integer
c = 1
A ce niveau là, c = 1
Sub CheckValue(ByVal iValue As Integer)
...
iValue = 13
End Sub
A ce niveau là, iValue = 13
CheckValue(c)
Avant l'appel à CheckValue, c = 1, après l'appel, c = 1. Pourquoi ? Parce que tu passe une copie de C à ta sub, et non c lui même ! Du coup, la copie de c passe à 13, mais c n'est pas modifié ! Pour modifier sa valeur, passe c par référence et non par valeur :
Sub CheckValue(ByRef iValue As Integer)
...
iValue = 13
End Sub
Pour le 16., c'est à tester soit même. Pourquoi ca provoquera des erreurs ? Tout simplement parce qu'il n'y a pas de fonction par défaut pour un recordset ou un field, ou alors, cette fonction ne renvoie pas un type compatible avec la propriété Text de ton textbox.
DarK Sidious
[Responsable API/VB du site
www.ProgOtoP.com]
Téléchargez
ProgOtoP API Viewer