|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre Confirmé
![]() Date d'inscription: février 2009
Localisation: quelque part au monde ou le soleil s'enleve chaque jour souriante
Âge: 24
Messages: 293
|
bonjours a tous
commme indiqué au titre j'ai un morceau de code Code :
Dim d1, d2 As Date
d1 = Me.date1.Value.ToShortDateString
d1.ToString()
MsgBox(d1)
d2 = Me.date2.Value.ToShortDateString
d2.ToString()
MsgBox(d2)
Dim comm As New OdbcCommand
comm.Connection = con
comm.CommandText = "select devis.code_devis as Code_Devis,devis.date_devis as Date_Devis,devis.tva_devis as Tva_Devis,devis.total_devis As Total_Devis ,client.nom as Nom_Client " & _
"from devis ,client where devis.num_client = client.code_client and devis.date_devis BETWEEN " & Trim(d1) & " and " & Trim(d2) & ""
et merci d'avance pour vous reonses |
|
|
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Date d'inscription: avril 2007
Localisation: 63
Âge: 28
Messages: 5 846
|
utilises les dbparameters et ta requete devrait fonctionner
concaténer une requete avec des date est une mauvaise idée si c'est access il faut des # autour de la date, si c'est sql server il faut des ' enfin les dbparemeters s'occupent de tout, meme d'inverser jour et mois car sur certaines bases c'est nécessaire ce qui donnerait dans ton cas : Code :
Dim comm As New OdbcCommand comm.Connection = con comm.CommandText = "select devis.code_devis as Code_Devis,devis.date_devis as Date_Devis,devis.tva_devis as Tva_Devis,devis.total_devis As Total_Devis ,client.nom as Nom_Client " & _ "from devis ,client where devis.num_client = client.code_client and devis.date_devis BETWEEN @DateDeb and @DateFin" comm.Parameters.Add("@DateDeb",datetime).value = d1 comm.Parameters.Add("@DateFin",datetime).value = d2 pour les string, les parameters évitent les soucis des mots qui contiennent un ' et les injections sql d'éventuels pirates |
|
|
|
|
|
#3 |
|
Membre Confirmé
![]() Date d'inscription: février 2009
Localisation: quelque part au monde ou le soleil s'enleve chaque jour souriante
Âge: 24
Messages: 293
|
tous d'abord merci pour ta reponse
mr je suis sous access et j'ai suivi votre conseil par ce petit code Code :
Dim comm As New OdbcCommand comm.Connection = con comm.CommandText = "select devis.code_devis as Code_Devis,devis.date_devis as Date_Devis,devis.tva_devis as Tva_Devis,devis.total_devis As Total_Devis ,client.nom as Nom_Client " & _ "from devis ,client where devis.num_client = client.code_client and devis.date_devis BETWEEN ? and ? " comm.Parameters.AddWithValue("date1", Trim(d1)) comm.Parameters.AddWithValue("date2", Trim(d1)) et encore une fois merci pour vous reponses |
|
|
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Date d'inscription: avril 2007
Localisation: 63
Âge: 28
Messages: 5 846
|
il ne faut pas transformer la date en string non plus, encore moins les trimer (ou alors t'as mis des date dans ta base sous forme de texte, mais ca serait encore plus aberrant)
pour les parameters ce que vous avez écrit ne correspond pas à la syntaxe que je vous ai proposé vous ne spécifiez pas le type non plus et dans votre requete vous avez mis des "?" au lieu des noms des variables de plus, quelle est la suite du code ? tu as essayer avec un executereader ? Dernière modification par Pol63 ; 04/07/2009 à 13h24. |
|
|
|
|
|
#5 |
|
Membre Confirmé
![]() Date d'inscription: février 2009
Localisation: quelque part au monde ou le soleil s'enleve chaque jour souriante
Âge: 24
Messages: 293
|
encore une fois merci pour ta reponse
j'utilise '?' car je suis sous SGBD Access et pas SQL c'est pour ça qu'avec un grand respect je ne suit pas votre code j'essai avec exécutereader mais avec Code :
if dr.read then msgbox("do something") end if Code :
msgbox(d1) msgbox(d2) encore une fois merci |
|
|
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Date d'inscription: avril 2007
Localisation: 63
Âge: 28
Messages: 5 846
|
si tu es sur access, pourquoi utiliser obdc plutot que ole qui prévu pour ? (oledbcommand au lieu de odbccommand)
sinon je viens de regarder dans l'aide des parametres pour oledbcommand (http://msdn.microsoft.com/fr-fr/library/k2xhb8d5.aspx) et en effet il faut des ? pour les paramètres plutot étrange, à priori en mettant le nom du champ en paramètre ca remplace le ? mais dans ta requete, tu as un seul champ pour 2 paramètres, donc je ne vois pas comment ca pourrait etre géré correctement et puis tu n'as pas spécifier le meme nom ... sinon je viens de trouver ca aussi http://aspnet101.com/aspnet101/tutorials.aspx?id=1 qui a l'air d'aller dans mon sens, à savoir mettre des @devant le nom pour en faire des variables SQL, meme pour du access ... |
|
|
|
|
|
#7 |
|
Membre Confirmé
![]() Date d'inscription: février 2009
Localisation: quelque part au monde ou le soleil s'enleve chaque jour souriante
Âge: 24
Messages: 293
|
encore une fois un grand merci pour vous réponses
mr j'utilise odbc parceque la base sera installer sur un serveur donc je veux créer un DSN pour l'accés a des clients - Serveur j'assaie de modifier les date de ma base (actualiser les dates avec des dates proches entre eux )et ca marche mais il me renvoie seulement la premiere enregistrement voici le code que j'écrit Code :
Dim d1, d2 As Date d1 = Me.date1.Value.ToShortDateString d2 = Me.date2.Value.ToShortDateString Dim comm As New OdbcCommand comm.Connection = con comm.CommandText = "SELECT Devis.code_devis as Code_Devis, Devis.date_devis as Date_Devis, Devis.tva_devis as Tva_Devis, Devis.total_devis As Total_Devis, client.nom as Nom_Client " & _ "FROM client INNER JOIN Devis ON client.code_client = Devis.num_client WHERE Devis.date_devis Between ? And ? " comm.Parameters.AddWithValue("date1", d1) comm.Parameters.AddWithValue("date2", d1) Dim adapt As New OdbcDataAdapter adapt.SelectCommand = comm Dim ds As New DataSet adapt.Fill(ds, "devis") gd_devis.SetDataBinding(ds, "devis") |
|
|
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Date d'inscription: avril 2007
Localisation: 63
Âge: 28
Messages: 5 846
|
je ne vois pas ce qu'apporte de passer par odbc ... m'enfin je ne sais pas tout non plus ...
|
|
|
|
|
|
#9 |
|
Membre Confirmé
![]() Date d'inscription: février 2009
Localisation: quelque part au monde ou le soleil s'enleve chaque jour souriante
Âge: 24
Messages: 293
|
encore une fois merci
si vous permettez mr intréssant maintenantt seulement pour la requet je ne sais pourquoi seulement la premiere enregisterement sachant que je remplit mon data grid et merci encore une fois |
|
|
|
|
|
![]() |
||
Requette renvoie null meme avec des données
|
||
| Outils de la discussion | |
|
|