I had the same problem. I didn't found a way to do it from within VB6. So I now use a Stored Procedure on the server. You can assign a NULL value from there. Here is an example of what I did. [REGLEE] is a date, it is not in the parameters of the procedure, I assign it NULL.
CREATE PROCEDURE dbo.COL_UPD_COLLECTION_OUV
(
@ref char(8),
@LeurRef varchar (50) ,
@Devise varchar (4) ,
@Montant money ,
@Succ varchar (10) ,
@NumCompte varchar (10) ,
@NumCheque varchar (10) ,
@Tire varchar (50) ,
@Tireur varchar (50) ,
@Taux float ,
@DeviseFrais varchar (4) ,
@Details varchar (400) ,
@InfoCheque varchar (100) ,
@NomBanq varchar (100) ,
@AdrBanq varchar (200) ,
@VilleBanq varchar (150) ,
@PaysBanq varchar (100) ,
@CPBanq varchar (50) ,
@Attn varchar (100) ,
@Amex int ,
@ModRegl varchar (50)
)
AS
UPDATE [dbo].[COL_COLLECTION]
SET [LeurRef] =@LeurRef,
[Devise] =@Devise,
[Montant] =@Montant,
[Succ] =@Succ,
[NumCompte] =@NumCompte,
[NumCheque] =@NumCheque,
[Tire] =@Tire,
[Tireur] =@Tireur,
[Reglee] =NULL,
[Taux] =@Taux,
[DeviseFrais] =@DeviseFrais,
[Details] =@Details,
[InfoCheque] =@InfoCheque,
[NomBanq] =@NomBanq,
[AdrBanq] =@AdrBanq,
[VilleBanq] =@VilleBanq,
[PaysBanq] =@PaysBanq,
[CPBanq] =@CPBanq,
[Attn] =@Attn,
[Amex] =@Amex,
[ModRegl] =@ModRegl
WHERE [Ref] = @Ref;
IF @@ERROR <> 0
BEGIN
RETURN -1
END
ELSE
BEGIN
RETURN 0
END