joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention 5 décembre 2014
-
25 mars 2011 à 16:27
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention 5 décembre 2014
-
29 mars 2011 à 12:55
bonjour,
je travail sur un petit programme et je veux garder la date du lot d'un produit la plus proche puis l'afficher.voici le bout de code:
Try
cnx.Open()
Dim cmd As New SqlCommand("select expedition,qtite from lot where id_produit= '" & Form1.DataGridView1.SelectedRows(0).Cells(1).Value & "'", cnx)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader()
Dim var As Date
While reader.Read()
var = reader("expedition")
If (DateDiff(DateInterval.Day, var, reader("expedition"))) < 0 Then
var = reader("expedition")
End If
End While
MsgBox(var)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur")
End Try
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 29 mars 2011 à 09:44
Tu dis "le problème est que la variable "var" ne prend pas la date inférieure." Si tu veut que var aie la date de hière il faut utilisé Dadateadd() voici un exemple qui fait que v_i vaut la date de hière
Dim v_i As Date
v_i = Date 'v_i vaut la date d'aujourd'hui
v_i = DateAdd("d", -1, v_i)'v_i vaut un jour de moins
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention 5 décembre 2014 29 mars 2011 à 10:07
bonjour,
peut être que je me suis mal exprimer, je t'explique l'idée:
en faite il s'agit de gestion de lot de produit, un produit peut être présent dans un ou plusieurs lots, alors je cherche à ce que la variable "var" reçoit comme valeur la date inférieur parmi tous les dates des lots pour un produit donné.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 29 mars 2011 à 10:40
J'ai compris tu as un problème d'analyse.
reader("expedition") change à chaque tour donc DateDiff(DateInterval.Day, var, reader("expedition") vaut tjs 0.
Autrement dis.
Tu rentre das la boucle reader("expedition") vaut 01.01.2012 tu met la valeur dans var qui vaut aussi 01.01.2012 et après tu teste si DateDiff(DateInterval.Day, 01.01.2012, 01.01.2012)<0 ! Tu vois ou est l'erreur .
2 solutions
1) tu remet une boucle par dessus genre
Dim var As Date
while v_var na pas pris tout les valeur
var = reader("expedition")
While reader.Read()
If (DateDiff(DateInterval.Day, var, reader("expedition"))) < 0 Then
var = reader("expedition")
End Ir
End While
end while ficitf
le but es que var ne change que si il a était comparé avec tout les autres
2) Si ton champs expedition et un champs date change ta requête pour inclure un beetwen (un truc du genre)
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention 5 décembre 2014 29 mars 2011 à 11:18
Merci bien, j'ai utilisé ce code est ça marche aussi, dis moi ton avis:
Try
cnx.Open()
Dim cmd As New SqlCommand("select expedition,qtite from lot where id_produit= '" & Form1.DataGridView1.SelectedRows(0).Cells(1).Value & "'", cnx)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader()
Dim var As Date
reader.Read()
var = reader("expedition")
reader.Close()
reader = cmd.ExecuteReader()
While reader.Read()
If (DateDiff(DateInterval.Day, var, reader("expedition"))) < 0 Then
var = reader("expedition")
End If
End While
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 29 mars 2011 à 12:06
E non cela ne peut pas marcher!!!
Il te manque une boucle.
peux-tu mettre des indexe ce qui donnerait un code comme celui qui suit
dim v_i as singel
dim v_j as singel
v_i=1
v_j=2
While not reader(v_i).eof
If (DateDiff(DateInterval.Day, reader(v_i).("expedition"), reader(v_j).("expedition"))) < 0 Then
'*************Fait ce que tu veux*************
End If
v_j=v_j+1
if reader(v_j).eof then
v_i=v_i+1
v_j=v_i+1
end if
end while
Ce code est faut (ou alor j'ai du bole) mais te donne une idée de ce que tu dois avoir.
Encore une chose ton champ c du texte ou une date ?
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention 5 décembre 2014 29 mars 2011 à 12:26
Merci cher ami pour ton aide,j'ai changer le programme par l'affichage d'un simple form contenant tous les dates et donner le choix à l'utilisateur pour cocher celle qu'il veut.
Merci bien