Manipuler une BD

IrisTun Messages postés 37 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 7 mars 2013 - 28 mars 2008 à 13:57
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 28 mars 2008 à 15:21
Bonjour,
j une petite application avec VB Net où j'utilise la notion d'orienté objet mais quand je veut accéder à la base et ajouté un enregistrement sa ne fonctionne pas je crois que le problème est dans ma requête, voici mon code:


Imports System.Data.OleDb



Public






Class
Articles


   Private



Sub
Button2_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button2.Click


      Dim
art1

As



New
Article
      art1.code_art = codart.Text
      art1.libelle = libel.Text
      art1.lot_min =

CInt
(lmin.Text)
      art1.unite = un.Text
      art1.magasin = mag.Text
      art1.delai_obt =

CInt
(delob.Text)
      art1.type = typ.Text


Dim
connection

As
OleDbConnection =

New
OleDb.OleDbConnection(

"Provider=Microsoft.jet.OleDb.4.0;Data source=c:\Base.mdb"
)


Dim
command

As
OleDbCommand = connection.CreateCommand
connection.Open()command.CommandText =


"INSERT INTO art (Code_article,
Libellé,Unité,Magasin,Lot_minimal,Délai_obtention,Type)
VALUES ("
& art.code_art & art.libelle & art.unite & art.magasin & art.lot_min & art.delai_obt & art.type & ")"

connection.Close()







End



Sub

Je crée un objet Article puis je le remplit du formulaire, en suite j’ouvre la connexion et je remplit le nouveau enregistrement depuis l’objet « art », donc c'est quoi la solution?

9 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
28 mars 2008 à 14:05
Salut,

Oui ta requêt n'est pas bien formulé, regrade ce lien pour t'aider...

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 mars 2008 à 14:32
Il faut que tes valeurs soient séparée par des virgules :

.... VALUES ("& art.code_art & "," & art.libelle & "," & .........

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
IrisTun Messages postés 37 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 7 mars 2013
28 mars 2008 à 14:32
Merci pr le lien sa donne d'idée sur SQl mais sa ne ma pas ouvert d'autre horizon pour ma requête
0
IrisTun Messages postés 37 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 7 mars 2013
28 mars 2008 à 14:41
Merci cazy mais ca n'a rien changé tjs même pb il n'y a pas d'erreur et au même temps sa ne marche pas
0

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

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
28 mars 2008 à 14:54
Salut,

Faut aussi faire attention au format de tes champ qui sont définit dans ta base....Voir aussi l'utilisattion de REPLACE dans le cas ou tu as des : '

Puis en reprenant l'exemple de Casy(Salut), je rajouterai :

.... VALUES ( '"& art.code_art & "','
" & art.libelle & "','" & .........A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 mars 2008 à 15:01
Exact Explorer, si les champs sont du texte il faut les encadrer par des " ou des '

Puisque VB utilise le " comme séparateur de chaine, il est effectivement plus simple d'utiliser le ' dans la requette (exemple d'Explorer). Attention cependant à ce que la valeur texte ne contienne pas elle-même un '. Si c'est le cas, il faudra faire un replace dans cette valeur pour doubler le '.

Sinon utiliser le ", mais dans ce cas pour mettre un " dans une chaine de caractère en VB il faut là aussi le doubler. En gros ça revient au même.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
IrisTun Messages postés 37 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 7 mars 2013
28 mars 2008 à 15:03
j pas comprit l'utilsation de REPLACE (vous  voulez dire que je l'écrit au lieu des apostrophe en rouge?)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 mars 2008 à 15:20
non, c'est plutot ainsi :

.... VALUES ( '"& Replace(art.code_art,"'
","''") & "','" & Replace(art.libelle,"'","''") & "','" & .........

attention, ''
c'est bien 2 appostrophes et non pas un guillemet

Bien sur si tu peux garantir que le champ ne pourra jamais contenir d'appostrophe, tu peux te passer du Replace, mais au moindre doute, il vaut mieux le mettre

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 mars 2008 à 15:21
Salut,
la requete n' est même pas exécutée pour savoir si l' erreur est au niveau de la synthaxe, et ou est ce qu' elle se situe.

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />
/PRE>
0
Rejoignez-nous