Problème avec update vb.2008

Signaler
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
-
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
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
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
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
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
3
@: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
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
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
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
3
@nsudai:
nn c pas ça j'ai rectifié l'apostrophe mais c toujours le même pb
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
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.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
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
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
3
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 .
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
3
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.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
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
Messages postés
29
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
1 août 2011
3
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 !!