Probleme d'une commande INSERT vers un bd Access

Skunk007 Messages postés 1 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 7 avril 2006 - 7 avril 2006 à 21:06
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 - 8 avril 2006 à 14:42
Voila je voudrais inserer une nouvelle ligne dans une table de ma base a partir d'un programme vb .net mais le programme plante a chaque fois et j'ai beau tourner le probleme ds tous les sens ca ne marche pas.
Voici mon code donc si vous avez une idée pourquoi ca plante n'hesitez pas


Dim SQL
As
String =
"INSERT INTO Projet(IDProjet,NomProjet,Logiciel,VersionLogiciel,ReferenceSiemensFR,"


SQL +=
"ReferenceCIS,DateDebut,DateFin,Catégorie,ClasseOffre,MontantTotal,NomClient,CoordonneesClient,"


SQL +=
"TelephoneClient,ChefdeProjet,DateRemiseoffre,NomVendeur,Pays,CoutEngineering,CoutHardWare,"


SQL +=
"NomContactSiemens,CoordonneesContactSiemens,TelephoneContactSiemens)"


SQL +=
"VALUES (" &
Me.IDProjet &
"," &
Me.NomProjet &
"," &
Me.Logiciel &
"," &
Me.VersionLogiciel &
","


SQL +=
"" &
Me.ReferenceSiemensFR &
"," &
Me.ReferenceCIS &
"," &
Me.DateDebut &
"," &
Me.DateFin &
","


SQL +=
"" &
Me.Categorie &
"," &
Me.ClasseOffre &
"," &
Me.MontantTotal &
"," &
Me.NomClient &
","


SQL +=
"" &
Me.CoordonneesClient &
"," &
Me.TelephoneClient &
"," &
Me.ChefdeProjet &
","


SQL +=
"" & DateRemiseOffre &
"," &
Me.Vendeur &
"," &
Me.Pays &
"," &
Me.CoutEngineering &
","


SQL +=
"" &
Me.CoutHardware &
"," &
Me.NomContactSiemens &
"," &
Me.CoordonnéesContactSiemens &
","


SQL +=
"" &
Me.TelephoneContactSiemens &
")"



Dim var
As
String =
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\Administrateur\Bureau\STAGE\Prog\Fenetre\bd1.mdb"



Dim cx
As
New OleDbConnection(var)



Dim cmd
As
New OleDbCommand(SQL, cx)


cmd.Connection.Open()


cmd.ExecuteNonQuery() // C'est ici que le programme plante


cmd.Connection.Close()

3 réponses

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
8 avril 2006 à 01:37
Salut
Apparemment, je pense que c'est normal : Plusieurs corrections :

- Pense à laisser des espaces avant et derrière les mots clés comme VALUES
Ta chaine actuelle doit ressembler à ça :
TelephoneContactSiemens)VALUES (...
Ajoute un espace avant le V

- Rappel d'encadrement des valeurs :
Il faut encadrer les valeurs des champs de type chaines par des '
Il faut encadrer les valeurs des champs de type Date par des #
Pas d'encadrement pour les chiffres
Exemple en supposant que IDProjet soit numérique et que NomProjet soit une chaine :
SQL += " VALUES (" & Me.IDProjet & ",'" & Me.NomProjet & "','" & Me.Logiciel & "', ...

- Ton premier champ est peut-être un AutoIncrément
Si c'est le cas, il ne faut pas utiliser ce champ (ni déclaration, ni valeur) dans un Insert. Le moteur se débrouillera seul.

- Les "" ne servent à rien (chaine nulle)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
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
8 avril 2006 à 01:43
J'oubliai : Access n'aime pas beaucoup les accents (ni les espaces).
Si le nom d'un champ comporte de tels caractères, il faut les encadrer avec des crochets [ et ]
[Catégorie]
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
8 avril 2006 à 14:42
En plus des remarques judicieuses qui ont été faites par jack, j'ajoute que les dates doivent être fournies au format anglais #mm/dd/yyyy#.
0
Rejoignez-nous