Cast du type 'DataRowview' en type 'Date' [Résolu]

kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 00:56 - Dernière réponse : cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention
- 14 juin 2006 à 17:49
j'ai une listbox1 qui affiche des données de type (des dates). dans une autre listbox2 je veux afficher les même dates dans litbox1 mais à chaqu'une des dates je vais ajouter 9 mois. pour cela j'ai le code suivant:










Dim
i, j

As




Integer









Dim
x, y, 

As




Date









For
i = 0

To



listbox1.Items.Count - 1

x =CDate( listbox1.Items(i))



y =





x.AddMonths(9)

listbox2.Items.Add(y)








Next
i





Le problème c'est que quand j'exécute j'ai le message : cast du type 'DataRowview' en type 'Date' non valide.
Pouvez  vous m'aider ?
                                                
                                                          merci d'avance
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 16:45
3
Merci
For



i = 0

To
ListBox1.Items.Count - 1x =


CDate
(ListBox1.Items(i).Row("date"))y = x.AddMonths(9)

ListBox2.Items.Add(y)


Next
i

en remplaçant "date" par le nom de la colonne contenant la date.. Chez moi ça marche nickel

Merci cs_drahcir 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_drahcir
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 11:23
0
Merci
Tu dévellopes en vb6? Parce que j'ai essayé avec VS 2003 et VS 2005 et j'ai pas de soucis!!
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 14:36
0
Merci
je développe en VS 2003. j'ai toujours le même message qui s'affiche.
je te remercie d'avance si tu m'aide à résoudre ce problème.
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 14:45
0
Merci
J'ai fait un copier/coller de ton code dans le load du formulaire et je n'ai pas ce problème...

En plus ListBox1.Items(i) renvoie une valeur de type Object, pas DataRowView! C'est bien une ListBox que tu utilises?

Que contiennent les items de ta listbox?
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 14:55
0
Merci
oui c'est bien une listebox que j'utilise.
et listbox1 affiche les données d'un champ nommé 'date_IF' dand ma BD access.
j'ai toujours le même message qui s'affiche.


vraiment je ne sais c'est dû à quoi ?


à ton avis ?
Commenter la réponse de kammegg
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 15:08
0
Merci
voilà le message complet :

une exception non gérée du type 'system.invalidCastException' s'est produite dans microsoft.visualbasic.dll
imformations supplémentaires :cast du type 'DataRowview' en type 'Date' non valide.
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 15:10
0
Merci
Ok, alors essaie ça :

x =CDate( listbox1.Items(i).value)
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 15:17
0
Merci
ça marche pas toujours. ya le message suivant:

une exception non gérée du type 'system.Missing<memberException' s'est produite dans microsoft.visualbasic.dll
imformations supplémentaires : Le membre public 'value' du type 'DataRowView' est introuvable
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 15:24
0
Merci
Met un point d'arrêt dans ta boucle for sur cette même ligne et place un espion sur listbox1.item(i).

Regarde ensuite dans quelle propriété tu trouves la valeur de la date et ajoute la à la place de value.
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 15:42
0
Merci
comment dois je faire pour placer un espion sur listbox1.item(i)  ?
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 15:45
0
Merci
Une fois le point d'arrêt atteint par le debogueur, tu sélectionne listbox1.item(i), click droit puis Ajouter un espion
Commenter la réponse de cs_drahcir
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 15:53
0
Merci
Essaye : 
 
listbox1.item(i).Row(index de la colonne contenant la date)

ou listbox1.item(i).Row(nom de la colonne contenant la date)
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 16:06
0
Merci
encore une fois pas de résultat.
mais je comprend pas le fait que ça marche avec toi quant t'as fait un copier coller, alors que ce n'est pas le cas pour moi.
je comprends pas
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 16:15
0
Merci
Dans ton cas, la source de ta listbox est un dataview alors que moi j'ai ajouté des "items" en dur dans ma listbox. Donc logiquement, dans mon cas, le prog convertit une string en date. Dans ton cas, c'est l'objet DataRowView qu'il tente de convertir. C'est pour ça que ça plante.

Comment as-tu crées la source de ta listbox??
Commenter la réponse de cs_drahcir
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 16:38
0
Merci
j'ai crée un OleDbDataAdapter nommé 'daVelage' en le glissant dans ma form et qui contient une requête parametrée.

Après j'ai crée un groupe de données nommées 'dsVelage' .
donc dand la fenetre 'Propriètés', dans le datasource de mon listbox1  j'ai mis 'dsVelage' et dans le DisplayMember j'ai mis la table se trouvant dans le 'dsVelage'.

j'ai aussi un bouton qui affiche une colonne (données de type date) de la table dans le listbox1 dont le code est le suivant :
daVelage.SelectCommand.Parameters("nom_exploitant").Value = combobox1.Text

daVelage.SelectCommand.Parameters("prenom_exploitant").Value = combobox2.Text

daVelage.SelectCommand.Parameters("code_exploitant").Value = combobox3.Text

Dsvelage.exploitant.Clear()

daVelage.Fill(Dsvelage)

et comme j'ai dit avant dans une autre listbox2 je veux afficher les même dates dans litbox1 mais à chaqu'une des dates je vais ajouter 9 mois. listbox2 n'est pas lié à aucune source de données.
Commenter la réponse de kammegg
kammegg 73 Messages postés vendredi 28 octobre 2005Date d'inscription 7 août 2006 Dernière intervention - 14 juin 2006 à 17:27
0
Merci
ouuuuuuuuf  ça m'as rendu un fou
enfin ça marche.
je te remercie infiniment Mr.drahcir pour ton aide. c'est très gentil de ta part.
donc on se verra avec un autre problème.
Commenter la réponse de kammegg
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 14 juin 2006 à 17:49
0
Merci
Bah si je peux t'aider....
Commenter la réponse de cs_drahcir

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.