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.
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)
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à ?
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 ?
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)
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
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