Probleme avec insert into

alanort Messages postés 16 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 22 avril 2010 - 30 mars 2010 à 09:49
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 30 mars 2010 à 10:29
bonjour,

voila je travaille avec VB Express 2008, et je travaille avec une base de donnée access 2003. j'aimerai pouvoir ajouter une mesure en cliquant sur un bouton et pouvoir rajouter des données qui se trouvent dans des text box.
En tenant compte aussi que les type des colonnes dans lesquelles je veux inserer les donnée sont de type integer (c'est ce que j'ai defini dans ma BD).

voici mon code pour pouvoir ajouter:

Private Sub btnAddMesure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddMesure.Click

' je fais la defensive pour verifier si ce sont bien des nombres que j'entre dans les text box et si ceux ci ne sont pas vide.

Dim sResponse As String = MsgBox("Confirmation de l'ajout", MsgBoxStyle.OkCancel, "Ajouter Mesure")
If sResponse = "1" Then
Try
ocConnexion.Open()
With ocCommand
.CommandType = CommandType.Text
.Connection = ocConnexion
.CommandText = "INSERT INTO Mesure (Mesure.id_patient, taille, poids, pointure, date) VALUES (" & CInt(tbNo.Text) & "," & CInt(txtBMesTaille.Text) & "," & CInt(txtBMesPds.Text) & "," & CInt(txtBMesPointure.Text) & ",#" & CDate(cbDateMes.Text) & "#);"
'notes: le insert into mesure ne marche pas
.ExecuteNonQuery()
End With


MsgBox("la mesure pour le patient a bien été rajouté")

Catch ex As OleDb.OleDbException
MessageBox.Show(ex.Message)
MessageBox.Show("L'opération d'insertion a échouée", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If

End If
ocConnexion.Close()
End Sub

Seulement, il me renvoie toujours l'erreur que la syntaxe de l'insert into n'est pas correct.
est ce que quelqu'un pourrait m'aider svp. Parce que j'ai l'impression de rencontrer un truc mystique la ^^. Merci d'avance

3 réponses

alanort Messages postés 16 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 22 avril 2010
30 mars 2010 à 10:22
voila j'ai resolu le probleme, il s'agissait comme le dit sur cette page du forum.

J'ai eu le même soucis entre VB .Net et une base access. En fait, un ou plusieurs des champs de ta table "Ads" correspond(ent) à un/des mots clés de Access. Il n'y a donc qu'à modifier le nom du/des champs en question.

Padkartiai


voici le lien
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 mars 2010 à 10:26
Salut
Sous Access 2003, quand tu définis un champ de type Integer, c'est de l'Integer 16 bits (VBA), c'est à dire de -32768 à +32767.
Sous VB.Net, on parle en 32 bits : Un Integer en .Net est un Long VBA (4 octets)
Un Integer VBA est un Short en .Net

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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 mars 2010 à 10:29
Ok
Si tu dois utiliser des noms de champs :
- Avec des caractères spéciaux comme les espaces ou les caractères accentués
- Dont l'orthographe ressemble à un mot clé du langage comme Date
--> Il faut encadrer le nom des champs avec des crochets --> [date]
Idem pour les noms de table, au cas où.
0
Rejoignez-nous