Peoblème au niveau de syntaxe

Résolu
cs_amoun2009 Messages postés 31 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 25 décembre 2014 - 14 avril 2012 à 17:36
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 16 avril 2012 à 11:13
[code=vb][code=autre]

If TextBox1.Text "" Or TextBox3.Text "" Or TextBox4.Text = "" Or ComboBox2.Text = "" Or ComboBox1.Text = "" Or ComboBox3.Text = "" Or ComboBox4.Text = "" Or TextBox5.Text = "" Then
MsgBox("Il faut remplir tous les champs")
Else
'les instructions
Dim f, g, k, l, m, n, o, p As String
Dim h, i, j As Decimal
Dim ds As New DataSet

ee = TextBox2.Text
f = ComboBox1.Text
g = ComboBox3.Text
h = NumericUpDown1.Value
i = NumericUpDown2.Value
j = NumericUpDown3.Value
k = ComboBox4.Text
l = TextBox5.Text
m = ComboBox5.Text
n = TextBox6.Text
o = ComboBox6.Text
p = TextBox7.Text


Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter

Dim con As New OleDb.OleDbConnection
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = F:\edition des cycles\WindowsApplication1\Editiondescycle.mdb"
Dim Mycommand As OleDbCommand = con.CreateCommand()

Mycommand.CommandText = "INSERT INTO Fichetraitement([Num fiche], Commande, Client, Tissu, [Num etape], Etape, Machine, Temp, Eau, [Température], [Produit1], [Concentration1], [Produit2], [Concentration2], [Produit3], [Concentration3], Commentaire, Coloris, Saison, [Dtae creation]) VALUES ('a','b','c','d','ee','f','g',h,i,j,'k','l','m','n','o','p','cc','aa','bb',#r#)"
Mycommand.Parameters.AddWithValue("a", TextBox1.Text)
Mycommand.Parameters.AddWithValue("b", ComboBox2.Text)
Mycommand.Parameters.AddWithValue("c", TextBox3.Text)
Mycommand.Parameters.AddWithValue("d", TextBox4.Text)
Mycommand.Parameters.AddWithValue("r", CDate(DateTimePicker1.Text))
Mycommand.Parameters.AddWithValue("aa", TextBox36.Text)
Mycommand.Parameters.AddWithValue("bb", TextBox37.Text)
Mycommand.Parameters.AddWithValue("cc", RichTextBox1.Text)
Mycommand.Parameters.AddWithValue("ee", TextBox2.Text)
Mycommand.Parameters.AddWithValue("f", ComboBox1.Text)
Mycommand.Parameters.AddWithValue("g", ComboBox3.Text)
Mycommand.Parameters.AddWithValue("h", NumericUpDown1.Text)
Mycommand.Parameters.AddWithValue("i", NumericUpDown2.Text)
Mycommand.Parameters.AddWithValue("j", NumericUpDown3.Text)
Mycommand.Parameters.AddWithValue("k", ComboBox4.Text)
Mycommand.Parameters.AddWithValue("l", TextBox5.Text)
Mycommand.Parameters.AddWithValue("m", ComboBox5.Text)
Mycommand.Parameters.AddWithValue("n", TextBox6.Text)
Mycommand.Parameters.AddWithValue("o", ComboBox6.Text)
Mycommand.Parameters.AddWithValue("p", TextBox7.Text)

con.Open()
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()

myReader.Close()
con.Close()

End If



Mon code est en visual basic 2010 l'erreur qui ma aperçu est "Erreur de syntaxe dans la date dans l'expression '#r#'."
dans ma base de données access le champ date création est de type date
s'il vous plait mes amis c'est grand souci pour moi je suis vraiment besoin pour votre aide
en attendons de vos meilleurs réponse veuillez agréer toutes mes sincères salutations.

30 réponses

cs_amoun2009 Messages postés 31 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 25 décembre 2014
15 avril 2012 à 23:31
bon dans ce cas c'est-à-dire lorsque je remplace datetimepicker.text par datetimepicker.value tous les champs prend la même format de la date et aussi je l'ai modifié au niveau de la base de données
Et voici le type de format qui est de type long
#4/15/2012 11:22:52 PM#
Mais toujours même erreur qui est :
Type de données incompatible dans l'expression du critère.
0
Utilisateur anonyme
15 avril 2012 à 23:49
Bonjour,

[i]Et voici le type de format qui est de type long
#4/15/2012 11:22:52 PM# /i

L'heure que tu montres-là représente 23:22:52 à peu près partout à l'extérieur des États-Unis. Ils ont AM entre minuit et midi et PM entre midi et minuit. Donc 13 h dans les Eupopes c'est 1 h PM aux États.

Si ton format Access et ton format VB sont bien des formats sur 12 heures, il faut croire que le problème vient de la formulation de l'instruction SQL
0
Utilisateur anonyme
16 avril 2012 à 00:00
Bonjour,

Ton problème doit ressembler à cela

http://support.microsoft.com/kb/175258/en-us?fr=1' target='_blank'>Attention c'est une traduction française faite par une machine.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 avril 2012 à 00:04
Salut

Mycommand.CommandText = "INSERT INTO Fichetraitement(Commande, Client, Tissu, [Num etape], Etape, Machine, Temp, Eau, [Température], [Produit1], [Concentration1], [Produit2], [Concentration2], [Produit3], [Concentration3], Commentaire, Coloris, Saison, [Dtae creation]) VALUES ('valcommande','client','tissu',numetape,'nometape','nommachine',valtemp,valeau,valtemperature,'valprod1','valconcentration1','valprod2','valconcentration2','valprod3','valconcentration3','commentaire','valcoloris','valsaison',#datecreation#)"
            Mycommand.Parameters.AddWithValue("valcommande



pourquoi [Num etape] et non Num etape
et ainsi toutes les champs avec les []
c'est Date creation ou Dtae creation
msdn

citation du msdn
Utilise des marqueurs de paramètres positionnels indiqués par un point d'interrogation (?).



et aussi vaut mieux utiliser

command.Parameters.Add("valcommande", OleDbType.BSTR).Value = TextBox3.Text
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2012 à 00:06
J'ai de mon côté essayé de fouiner >>>
A lire, pour ce qui est de la méthode générale :
Tapez le texte de l'url ici.

Reste probablement le format à modifier de sorte à correspondre à la définition du champ de date.
Je me demande si le plus simple ne serait pas tout simplement de donner au paramètre la valeur "interne" de la date (équivalent du dateserial de VB6 ?), de sorte à éviter d'éventuels conflits entre les formats dd/mm/yyyy (français) et mm/dd/yyyy (utilisé systématiquement par Access, par exemple)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_amoun2009 Messages postés 31 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 25 décembre 2014
16 avril 2012 à 00:13
oui t'a raison ici ils ne sont pas de même format et je n'ai pas trouver dans msdn comment je peut faire pour que la time prend format 24H.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2012 à 00:27
Je ne le sais pas non plus (VB.Net, ce n'est pas mon truc).
Mais regarde TimeSerial et DateSerial dans MSDN.
Regarde par exemple ici : Tapez le texte de l'url ici.
Une partie appelle mon attention :
Since every Date value is supported by a System.DateTime structure, its methods give you additional options in assembling a Date value. For example, you can employ one of the overloaded DateTime constructors to populate a Date variable using the desired combination of components. The following example sets newDateTime to May 6, 1978 at one tenth of a second before 8:30 in the morning:

Dim newDateTime As Date = New Date(1978, 5, 6, 8, 29, 59, 900)


Tu n'as probablement pas à aller jusqu'au 10ème de seconde et la dernière valeur (900) de cet exemple pourrait probablement être ignorée.
Passer par des dates et heures internes peut être salvateur.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_amoun2009 Messages postés 31 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 25 décembre 2014
16 avril 2012 à 00:36
je suis sous visual basic 2010
bon pour Dtae creation c'est correcte comme celle de la base de données
pour les [] parce que les champs comporte des caractères spéciaux
0
cs_amoun2009 Messages postés 31 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 25 décembre 2014
16 avril 2012 à 11:00
Merci tous pour vos aides et j'attend encore vos commentaires
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2012 à 11:13
Bonjour,
Cela me parait correspondre à ce dont je te parlais plus haut, à savoir :
qui, selon moi, devrait être écrite sans le Cdate ===>> genre :
Mycommand.Parameters.AddWithValue("r", "chaine_de_caractères" )

et devrait donc également marcher en remplaçant (dans tes VALUES) #r# par "r" (dans ton tout premier code). Il me semble... pour correspondre à ce dont je t'avais également parlé ===>>
Et comment espérer la reconnaissance d'un paramètre #r#, alors qu'a été ajouté un paramètre "r"

Mais bon... je suis loin d'être sûr de ma mémoire.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous