cs_MagDix
Messages postés532Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention 6 octobre 2012
-
17 nov. 2009 à 02:46
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011
-
18 nov. 2009 à 17:58
Bonjour à tous
Je cherche un moyen pour enregistrer un nouvel enregistrement dans ma BD avec une requête SQL. J'ai une date dans cette reqête et je crois que le bobo est relié à cette date.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 17 nov. 2009 à 08:06
Salut
Quel type de base de données (Access, SQL Server ...) ?
Que donne ta chaine RequeteSQL après préparation ?
Tes champs textes comportent-ils des ' ?
Ton champ numérique possède t-il une virgule ou un point en guise de séparateur décimal ?
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_MagDix
Messages postés532Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention 6 octobre 20121 17 nov. 2009 à 13:57
Bonjour alors voici les réponses:
Quel type de base de données (Access, SQL Server ...) ?
Dans ma BD Acces ma colonne date est en format date Date/Heure avec un format Date, abrégé (2007-06-19 exemple d'Access).
Que donne ta chaine RequeteSQL après préparation ? Ici je ne suis pas certain de ta question...
INSERT INTO Paiements (Date,Prix,Carte,Description) VALUES (#2009-11-17#,100.00,'American Express','test')
Tes champs textes comportent-ils des ' ? Oui
Ton champ numérique possède t-il une virgule ou un point en guise de séparateur décimal ? C'est le point qui est utilisé mais mon Windows gère les virgules. Le bug peut-il venir de là ?
vblover
Messages postés57Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention27 janvier 2011 17 nov. 2009 à 20:13
probablement, ton probleme reside dans la date. en effet Sql ne considere que les dates au format americain c'est a dire mois-jours-annee. bien sur il faut adjoindre les dieses.
vblover
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 17 nov. 2009 à 21:11
Re
Access : ce n'était pas évident à découvrir.
Ok pour la chaine résultat avant soumission.
A part le format date qui n'est surement pas reconnu par Access, je ne vois pas d'ambigüité.
Champs texte avec ' : Je voulais dire que, si à l'intérieur de ton texte tu as des ', cela posera problème, exemple avec ce texte "rue d' Iena".
Avec ce dernier exemple, la chaine de la requète deviendrait :
INSERT INTO Paiements (Date,Prix,Carte,Description)
VALUES (#2009-11-17#,100.00,'American Express','rue d'Iena')
Ici, bug garanti puisqu'il y a un nombre impair de '.
Il faut doubler les ' à l'intérieur de la chaine, si c'est le cas.
Point/Virgule : Oui, ça arrive. Faut tester.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
vblover
Messages postés57Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention27 janvier 2011 18 nov. 2009 à 17:27
A moins que l'utilisateur saisisse la date au format americain dans txtdateachat, ce qui serait bizare, il faudrait passer par une conversion.
voici une fonction qui fait la conversion:
+++++++++++++++++++++++++++++++++++++++++++
Public Function dateformatamericain(ByVal str_Date As String) As String
Dim str_mois As String, str_jour As String, str_an As String
End Function
++++++++++++++++++++++++++++++++++++++++++++++
Dans ta requete sql remplace txtdateachat.text par dateformatamericain(txtdateachat.text).
ca devrait marcher a merveuille.
vblover
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011 18 nov. 2009 à 17:58
Voici la fonction que moi j'ai trouvé sur le net et qui marché bien
Function ConvertDateFormat(ByVal DateAConvertir As String) As String
Dim str() As String = Split(DateAConvertir, "/")
ConvertDateFormat = str(0) + "/" + str(1) + "/" + str(2)
End Function