J'utilise le controle ListView que je rempli avec des=20
donn=E9es issue d'une base mdb. Mais voila, certaines de ces=20
donn=E9es ont la valeur Null, et au moment de l'affectation=20
dans le ListView, celui-ci n'en veut pas. Alors =E9videmment=20
y'a bien la solution de faire un truc du genre :
Set MyItem =3D Me.ListView1.ListItems.Add(, , Iif(IsNull(Rs
("DO_TYPE"))=3DFalse,Rs("DO_TYPE"),"")
mais je trouve =E7a franchement lourd, surtout s'il faut=20
faire =E7a pour chaque cellule.
N'y a t il pas une option du ListView permettant d'=E9viter=20
ce probl=E8me ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guy DETIENNE
Salut ;O)
En ce qui me concerne, j'utilise la méthode que tu décris.
Une façon peu élégante serait de gérer l'erreur via un On Erro Goto....
Ou alors, gérer les champs Null directement dans ta table via une requête. Je veux dire par là, créer dynamiquement un champ dans ta requete en fonction de celui concerné. Si le champ est rempli alors on le laisse ainsi, s'il est Null, tu y mets un blanc...
A tester...
Tchao
Guy -- __________________________________ Tchao.net: L'informatique à votre dimension www.tchao.net Pour toute réponse, retirer le .nospam de l'adresse mail ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Nicolas" a écrit dans le message de news:0b7201c3a531$1d45cc80$ Bonjour,
J'utilise le controle ListView que je rempli avec des données issue d'une base mdb. Mais voila, certaines de ces données ont la valeur Null, et au moment de l'affectation dans le ListView, celui-ci n'en veut pas. Alors évidemment y'a bien la solution de faire un truc du genre :
Set MyItem = Me.ListView1.ListItems.Add(, , Iif(IsNull(Rs ("DO_TYPE"))úlse,Rs("DO_TYPE"),"")
mais je trouve ça franchement lourd, surtout s'il faut faire ça pour chaque cellule.
N'y a t il pas une option du ListView permettant d'éviter ce problème ?
Merci d'avance.
Nicolas
Salut ;O)
En ce qui me concerne, j'utilise la méthode que tu décris.
Une façon peu élégante serait de gérer l'erreur via un On Erro Goto....
Ou alors, gérer les champs Null directement dans ta table via une requête.
Je veux dire par là, créer dynamiquement un champ dans ta requete en
fonction de celui concerné. Si le champ est rempli alors on le laisse
ainsi, s'il est Null, tu y mets un blanc...
A tester...
Tchao
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Nicolas" <nicolasheurtevin@wanadoo.fr> a écrit dans le message de
news:0b7201c3a531$1d45cc80$a101280a@phx.gbl...
Bonjour,
J'utilise le controle ListView que je rempli avec des
données issue d'une base mdb. Mais voila, certaines de ces
données ont la valeur Null, et au moment de l'affectation
dans le ListView, celui-ci n'en veut pas. Alors évidemment
y'a bien la solution de faire un truc du genre :
Set MyItem = Me.ListView1.ListItems.Add(, , Iif(IsNull(Rs
("DO_TYPE"))úlse,Rs("DO_TYPE"),"")
mais je trouve ça franchement lourd, surtout s'il faut
faire ça pour chaque cellule.
N'y a t il pas une option du ListView permettant d'éviter
ce problème ?
En ce qui me concerne, j'utilise la méthode que tu décris.
Une façon peu élégante serait de gérer l'erreur via un On Erro Goto....
Ou alors, gérer les champs Null directement dans ta table via une requête. Je veux dire par là, créer dynamiquement un champ dans ta requete en fonction de celui concerné. Si le champ est rempli alors on le laisse ainsi, s'il est Null, tu y mets un blanc...
A tester...
Tchao
Guy -- __________________________________ Tchao.net: L'informatique à votre dimension www.tchao.net Pour toute réponse, retirer le .nospam de l'adresse mail ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Nicolas" a écrit dans le message de news:0b7201c3a531$1d45cc80$ Bonjour,
J'utilise le controle ListView que je rempli avec des données issue d'une base mdb. Mais voila, certaines de ces données ont la valeur Null, et au moment de l'affectation dans le ListView, celui-ci n'en veut pas. Alors évidemment y'a bien la solution de faire un truc du genre :
Set MyItem = Me.ListView1.ListItems.Add(, , Iif(IsNull(Rs ("DO_TYPE"))úlse,Rs("DO_TYPE"),"")
mais je trouve ça franchement lourd, surtout s'il faut faire ça pour chaque cellule.
N'y a t il pas une option du ListView permettant d'éviter ce problème ?
Merci d'avance.
Nicolas
Zoury
Salut Nicolas!
N'est-ce là le cas où il suffit de concatener un chaine vide au champ pour eviter une erreur?
'*** Set MyItem = Me.ListView1.ListItems.Add(, , Rs("DO_TYPE") & "") '***
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.
Nicolas
Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une
méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques
colonnes et quelques lignes, cela devient monstrueusement
ralentissant (excusez le terme) dés qu'on s'attaque à des
milliers de lignes.
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.
Nicolas
Zoury
Tu peux faire la convertion dans ta requête SQL :
select isnull(mon_champs_texte, '') from ma_table
ainsi la concaténation rs("blabla") & "" deviendrait complètement inutile.
Merci de poster les réponses au groupe afin d'en faire profiter à tous wrote in message news:09fa01c3a53a$6387db80$ Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.
Nicolas
Tu peux faire la convertion dans ta requête SQL :
select isnull(mon_champs_texte, '') from ma_table
ainsi la concaténation rs("blabla") & "" deviendrait complètement inutile.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
<anonymous@discussions.microsoft.com> wrote in message
news:09fa01c3a53a$6387db80$a601280a@phx.gbl...
Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une
méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques
colonnes et quelques lignes, cela devient monstrueusement
ralentissant (excusez le terme) dés qu'on s'attaque à des
milliers de lignes.
Merci de poster les réponses au groupe afin d'en faire profiter à tous wrote in message news:09fa01c3a53a$6387db80$ Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.
Nicolas
Guy DETIENNE
Salut ;O)
Tu sais, il est aussi possible de boucler sur ton Recordset et le listItems.Add pour n'avoir que quelques lignes de code mais s'il y a des milliers de lignes.
Exemple:
'pour les en-têtes de colonnes For i = 0 To LocalRs.Fields.Count - 1 Me.ListView1.ColumnHeaders.Add , , LocalRs.Fields(i).Name, Me.ListView1.Width / LocalRs.Fields.Count Next i
'pour le contenu des items For i = 1 To LocalRs.RecordCount
For j = 0 To LocalRs.Fields.Count- 1 If j = 0 Then Set MyItem = Me.ListView1.ListItems.Add(, , LocalRs.Fields(j).Value, , "MonIcone") Else MyItem.SubItems(j) = IIf(Not IsNull(LocalRs.Fields(j).Value), LocalRs.Fields(j).Value, "") End If
Next j LocalRs.MoveNext Next i
Mais tout dépend de la construction de ton programme.
Et la gestion via On Error Goto ?
Tchao
Guy -- __________________________________ Tchao.net: L'informatique à votre dimension www.tchao.net Pour toute réponse, retirer le .nospam de l'adresse mail ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
a écrit dans le message de news:09fa01c3a53a$6387db80$ Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.
Nicolas
Salut ;O)
Tu sais, il est aussi possible de boucler sur ton Recordset et le
listItems.Add pour n'avoir que quelques lignes de code mais s'il y a des
milliers de lignes.
Exemple:
'pour les en-têtes de colonnes
For i = 0 To LocalRs.Fields.Count - 1
Me.ListView1.ColumnHeaders.Add , , LocalRs.Fields(i).Name,
Me.ListView1.Width / LocalRs.Fields.Count
Next i
'pour le contenu des items
For i = 1 To LocalRs.RecordCount
For j = 0 To LocalRs.Fields.Count- 1
If j = 0 Then
Set MyItem = Me.ListView1.ListItems.Add(, ,
LocalRs.Fields(j).Value, , "MonIcone")
Else
MyItem.SubItems(j) = IIf(Not
IsNull(LocalRs.Fields(j).Value), LocalRs.Fields(j).Value, "")
End If
Next j
LocalRs.MoveNext
Next i
Mais tout dépend de la construction de ton programme.
Et la gestion via On Error Goto ?
Tchao
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
<anonymous@discussions.microsoft.com> a écrit dans le message de
news:09fa01c3a53a$6387db80$a601280a@phx.gbl...
Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une
méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques
colonnes et quelques lignes, cela devient monstrueusement
ralentissant (excusez le terme) dés qu'on s'attaque à des
milliers de lignes.
Tu sais, il est aussi possible de boucler sur ton Recordset et le listItems.Add pour n'avoir que quelques lignes de code mais s'il y a des milliers de lignes.
Exemple:
'pour les en-têtes de colonnes For i = 0 To LocalRs.Fields.Count - 1 Me.ListView1.ColumnHeaders.Add , , LocalRs.Fields(i).Name, Me.ListView1.Width / LocalRs.Fields.Count Next i
'pour le contenu des items For i = 1 To LocalRs.RecordCount
For j = 0 To LocalRs.Fields.Count- 1 If j = 0 Then Set MyItem = Me.ListView1.ListItems.Add(, , LocalRs.Fields(j).Value, , "MonIcone") Else MyItem.SubItems(j) = IIf(Not IsNull(LocalRs.Fields(j).Value), LocalRs.Fields(j).Value, "") End If
Next j LocalRs.MoveNext Next i
Mais tout dépend de la construction de ton programme.
Et la gestion via On Error Goto ?
Tchao
Guy -- __________________________________ Tchao.net: L'informatique à votre dimension www.tchao.net Pour toute réponse, retirer le .nospam de l'adresse mail ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
a écrit dans le message de news:09fa01c3a53a$6387db80$ Oui c'est bien ce cas là Zoury !
Je suis donc condamné à pourrir avec mon ListView et une méthode lourde pour éviter le Null ?
Car si le problème ne se pose pas quand on a quelques colonnes et quelques lignes, cela devient monstrueusement ralentissant (excusez le terme) dés qu'on s'attaque à des milliers de lignes.