Fonction compute

Résolu
Signaler
Messages postés
6
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

Je n'arrive pas à trouver l'expression exacte à mettre dans le paramêtre filter de la fonction compute, afin de filtrer les lignes du datatable qui ont le champ à nul d'un datacolumn soit:

matable.compute("Count("ChampCle")", "Champ2 is DBNull.value")

Champ2 Is DBNull.Value ne marche pas
Champ2 = DBNull.Value ne marche pas
Champ2 Is nothing ne marche pas
Champ2 = nothing ne marche pas
IsNull(Champ2) ne marche pas

que faut-il mettre ?
j'ai écumé le web mais j'ai rien trouvé, si quelqu'un à une idée sur l'expression, je suis preneur
Merci d'avance

JLB 1er

7 réponses

Messages postés
14832
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 décembre 2021
157
Bonjour

"DBNull" est le type pour .NET, "null" est le type SQL.

Penses à mettre "Réponse acceptée" si ton pb est solutionné.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Langage inconnu pour moi.
Ton objet 'matable' est dimensionné comment, quel type ?
Es-tu sûr de travailler sous VB.Net ou bien travailles-tu sous Access directement (alors VBA) ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
6
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
30 octobre 2010

JLB 1er
Messages postés
6
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
30 octobre 2010

Salut Jack,

Je pensais avoir été assez clair dans mon explication aussi voici le code détaillé (en vb.net)

maBase as dataset
maTable as datatable
ChampCle as datacolumn
Champ2 as datacolumn
...
       ' Je passe l'initialisation de la base et de la table, tout cela fonctionnement correctement 
       ' Le ChampCle est de type integer toutes ses lignes (enregistrements) ont un nombre
       ' Le Champ2 est de type integer ses lignes ont soit un nombre, soit elles sont à nul (DBNull.value)
       ' Je désire calculer le nombre de ligne suivant le nombre mis dans Champ2

sub InitTableau()
Dim t() as integer
Dim ch as string
Redim t(5)
ch = "Count(ChampCle)
with maBase.maTable
t(0) = Compute(ch, "Champ2 Is DBNull.value")t(1) Compute(ch, "Champ2 1")t(2) Compute(ch, "Champ2 2")
...
        ' Le calcul des lignes dont le Champ2 est nul ne fonctionne pas
donc ma demande était : quelle expression doit on mettre dans le paramêtre Filter de la fonction compute, afin de filtrer les lignes d'enregistrement dont le Champ2 est à nul

J'espère que cette fois-ci j'ai été assez clair
Merci d'avance pour la réponse
JLB 1er

JLB 1er
Messages postés
14832
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 décembre 2021
157
Bonjour

Tu as essayé :
t(0) = Compute(ch, "Champ2 Is null")
?

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
6
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
30 octobre 2010

Salut NHenry

Je viens d'essayer t(0) = Compute(ch, "Champ2 Is Null") et tout fonctionne correctement !
mille merci

Moi je croyais que lorsque l'on travaillait avec des champs de base de donnée  il fallait toujours comparer avec DBNull.value d'où ma question

quelle est la différence entre DBNull.value et null ? et quand employer l'un ou l'autre ?

enfin ça fonctionne c'est le principal, et encore tous mes remerciements à toi

JLB 1er
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Merci de ces précisions, NH
C'est justement le DBNull qui me faisait penser à un autre langage que .Net : 'connaissais pô.