alanort
Messages postés16Date d'inscriptionsamedi 10 avril 2010StatutMembreDernière intervention22 avril 2010
-
30 mars 2010 à 09:49
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
alanort
Messages postés16Date d'inscriptionsamedi 10 avril 2010StatutMembreDernière intervention22 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.
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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ù.