Problème avec update vb.2008

cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 - 7 août 2010 à 21:59
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 - 9 août 2010 à 01:05
salut les amis.
j'ai écrit un code permettant de mettre à jour ma base de données, mais apparemment ça ne fonctionne pas et ça m'affiche à chaque fois ceci :

Erreur de syntaxe dans l'instruction UPDATE.(dans la ligne en gras ci-dessous)

sachant que mon code est :

ObjetConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=C:\stage_ocp.mdb")
ObjetConnection.Open()
ObjetCommand = New OleDbCommand("select * from Transmetteur_de_pression")
ObjetCommand.Connection = ObjetConnection
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetDataAdapter.Fill(ObjetDataSet, "Transmetteur_de_pression")
ObjetDataTable = ObjetDataSet.Tables("Transmetteur_de_pression")
ObjetCommand New OleDbCommand("update Transmetteur_de_pression set Désignation '" & Me.t1.Text & "',Repère = '" & Me.t2.Text & "',P&ID = '" & Me.t3.Text & "")
ObjetCommand.Connection = ObjetConnection
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetDataAdapter.Fill(ObjetDataSet, "Transmetteur_de_pression")

ObjetDataTable = ObjetDataSet.Tables("Transmetteur_de_pression")
MsgBox("sauvegarde avec succès")
ComboBox1.Text = ""
ObjetConnection.Close()

si qlq1 me vient en aide ça sera la bienvenue et je serais vraiment reconnaissant pour sa faveur.
Merci d'avance.

11 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 août 2010 à 22:35
Salut

C'est normal que ca ne fonctionne pas.
Tu mélanges 2 concepts
* le mode déconnecté (dataadapter, dataset, datarow, datatable,...)
* le mode connecté (command,...)

Pour éclairsir le tout regarde la saga.net de pascal belaud.

Bon dev
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
7 août 2010 à 22:42
Commence par mettre les 2 requêtes dans 2 procédures différentes(ex:"Select" dans bouton1 et "Update" dans bouton2)

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 3
8 août 2010 à 02:20
@:nhervagault
je ne suis pas un expert en vb ,alors veuillez me dire les choses comment doivent être faite,est ce que je dois ajouter un boutton isoler ceci isoler cela tu vois et merci.
@:NSUADI
j'ai essayé mais ça ne marche toujours pas
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
8 août 2010 à 13:13
dans ta requête "Update", il manque l'apostrophe(') entre les guillemets à la fin

ObjetCommand New OleDbCommand("update Transmetteur_de_pression set Désignation '" & Me.t1.Text & "',Repère = '" & Me.t2.Text & "',P&ID = '" & Me.t3.Text & "") 


donc ajoute le:
P&ID = '" & Me.t3.Text & "'") 


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0

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

Posez votre question
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 3
8 août 2010 à 16:46
@nsudai:
nn c pas ça j'ai rectifié l'apostrophe mais c toujours le même pb
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
8 août 2010 à 17:04
Mets ton code que tu as maintenant suite à la vision des tutoriels que je t'ai indiqué.
L'erreur ou le comportement que tu as!
Le choix que tu as fais entre le mode connecté et le mode déconnecté.

Pourqu'on puisse suivre ta progression, c'est le seul moyen de progression, comprendre ce que tu écris ;-)
Si on te maches tout le travail c'est pas instructif pour toi.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
8 août 2010 à 18:07
Donne le message d'erreur exacte qui t'es renvoyé...et puis essaies de posté le code que tu utilises plus clairement!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 3
8 août 2010 à 18:50
bon à vrai dire j'ai commis une erreur de copier coller.
j'ai supprimé la partie (select)
mon nouveau et authentique code c'est :

ObjetConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=C:\stage_ocp.mdb")
ObjetConnection.Open()
'ObjetCommand = New OleDbCommand("select * from Transmetteur_de_pression")
'ObjetCommand.Connection = ObjetConnection
'ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
'ObjetDataAdapter.Fill(ObjetDataSet, "Transmetteur_de_pression")
'ObjetDataTable = ObjetDataSet.Tables("Transmetteur_de_pression")
ObjetCommand = New OleDbCommand("update Transmetteur_de_pression set Désignation='" & t1.Text & "',Repère='" & t2.Text & "',P&ID='" & t3.Text & "',Montage='" & t4.Text & "',Classification_zone='" & t5.Text & "',No_ligne='" & t6.Text & "',DN_ligne='" & t7.Text & "',Equipement='" & t8.Text & "',Fluide='" & t9.Text & "',Tem_Min='" & t10.Text & "',Tem_Nom='" & t11.Text & "',Tem_Max='" & t12.Text & "',Pression_Min='" & t13.Text & "',Pression_Nom='" & t14.Text & "',Pression_Max='" & t15.Text & "',Débit_Min='" & t16.Text & "' ,Débit_Nom='" & t17.Text & "',Débit_Max='" & t18.Text & "',Densité='" & t19.Text & "',Viscosité='" & t20.Text & "',Taux_solide='" & t21.Text & "',Vitesse_max='" & t22.Text & "',Possibilité_vide='" & t23.Text & "',Seuil_LL='" & t24.Text & "',Seuil_L='" & t25.Text & "',Seuil_H='" & t26.Text & "',Seuil_HH='" & t27.Text & "',Gamme='" & t28.Text & "',Echelle_calibrée='" & t29.Text & "',Type_technique='" & t30.Text & "',Alimentation='" & t31.Text & "',Signal_sortie='" & t32.Text & "',Protocole='" & t33.Text & "',Indicateu_local='" & t34.Text & "',Console_configuration='" & t35.Text & "',Précision='" & t36.Text & "',Configuration='" & t37.Text & "',Boitier='" & t38.Text & "',Etanchéité_boitier='" & t39.Text & "',Matière_corps='" & t40.Text & "',Matière_cellule='" & t41.Text & "',Connexion_procédé='" & t42.Text & "',Montage_transmetteur='" & t43.Text & "',Matière_visserie='" & t44.Text & "',Matière_boulonnerie='" & t45.Text & "',Séparateur='" & t46.Text & "',Matière_séparateur='" & t47.Text & "',Type_séparateur='" & t48.Text & "',DN/PN='" & t49.Text & "',Accessoires='" & t50.Text & "',Membrane_pièces_contact_fluide='" & t51.Text & "',Capillaire='" & t52.Text & "',Matière_capillaire='" & t53.Text & "',Liaison_capillaire='" & t54.Text & "',Longueur_séparateur='" & t55.Text & "',Gaine_de_protection='" & t56.Text & "',Fluide_de_remplissage='" & t57.Text & "',Manifold='" & t58.Text & "',Matière_manifold='" & t59.Text & "',Nombre_voies='" & t60.Text & "',Connexion='" & t61.Text & "',Coffret_protection='" & t62.Text & "',Matière_coffret='" & t63.Text & "',Etanchéité_coffret='" & t64.Text & "',Lunette='" & t65.Text & "',Presse_étoupe='" & t66.Text & "',Repérage_transmetteur='" & t67.Text & "',Repérage_coffret='" & t68.Text & "',Fournisseur='" & t69.Text & "',Modèle='" & t70.Text & "',Numéro_série='" & t71.Text & "' where Repère='" & t2.Text & "'")
ObjetCommand.Connection = ObjetConnection
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
'ObjetDataSet.Clear()
ObjetDataAdapter.Fill(ObjetDataSet, "Transmetteur_de_pression")
ObjetDataTable = ObjetDataSet.Tables("Transmetteur_de_pression")
MsgBox("sauvegarde avec succès")
ComboBox1.Text = ""
ObjetConnection.Close()

Vous voyez la grande ligne de update , je crains que ça sois une erreur logique d'un not null ou bien qlq chose comme ça mais j'ai vérifié ma base de données Access sachant que tous les champs de ma table sont du texte et il ma parait que tout est réglé pourtant ça m'affiche toujours le message d'erreur :
Erreur de syntaxe dans l'instruction UPDATE (dans la ligne en rouge !!!)

Désolé pour la longueur de mon code,j'espère que vous m'aideriez car cette je me suis resté plus de 2 jours et 2 nuits je vous le jure .
0
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 3
8 août 2010 à 18:53
pour le where c'est plutôt :

where Repère='" & combox1.Text & "'

et le 'ObjetDataSet.Clear() c'est juste un commentaire !!

A vous les amis.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
9 août 2010 à 00:31
Est ce que la valeur que tu sélectionnes dans ta combobox correspond également à un enregistrement existant dans ta base de données?
ex:dans ta combobox correspondant à une colonne 'couleur' dans la tableUstensile
,il y a des items(bleu,blanc,rouge) et que dans ta base tu as 2 enregistrements comme ceci:

Designation couleur
verre bleu
Tasse rouge

si dans l'exécution,dans ta combo tu choisis blanc,la requête sera donc:
update Ustensile set Designation='goblet' where couleur='blanc' or il n'existe pas dans ta base un enregistrement ayant 'blanc' pour couleur,il y aura donc une erreur...
Alors essaie de vérifier cela et reviens poster et puis enlève tous ces commentaires inutiles qui encombrent énormément et qui prêtent à confusion


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
cs_onh890 Messages postés 26 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 août 2011 3
9 août 2010 à 01:05
bon j'ai pu résoudre mon problème ouuuuuufffffff mais en tout càs merci c'étais dû à un & dans l'un des champs de ma table.
juste une dernière question comment exporter la prise image de mon interface vb sous un fichier .doc , je veux que ça sois automatique pas la peine d'utiliser paint !!
0
Rejoignez-nous