ADO SQL

enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011 - 10 juin 2011 à 02:20
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 16 juin 2011 à 23:01
Bonjour à tous, je suis entrain de créer un logiciel qui sert de passerelle pour les données, il aura pour fonction de synchroniser les données clients entre deux logiciels déjà existant utilisant des bases access sur lesquels je me connecte la nuit pour effectuer ma synchro, enfin quand ça sera terminer.

Actuellement, j'essaye de faire une requête insert into qui échoue, j'obtiens le message d'erreur suivant :

Aucune valeur donnée pour un ou plusieurs des paramètres requis.

Voici ma requête d'insertion :

"INSERT INTO Client
(NumClient,NomClient,ContactClient,MailClient,TelFixe,TelPort,TelFax,Adresse1,Adresse2,Adresse3,Ville,Titre,Groupe,Civilite,coID) VALUES(V_NumClient,V_NomClient,V_ContactClient,V_MailClient,V_TelFixe,V_TelPort,V_TelFax,V_Adresse1,V_Adresse2,V_Adresse3,V_Ville,V_Titre,V_Groupe,V_Civilite,V_coID)"


J'ai vérifier dans ma table, je n'ai que la clef primaire généré automatiquement qui est en " null interdit ", un peu logique en même temps.

J'ai imaginer une solution étant donnée que suivant le message d'erreur je ne fournis pas toute les données; j'avais penser remplir tout les champs par des espaces si ceux-ci sont vide de l'autre coté, solution rustine qui ne me plait pas beaucoup.

Il y à des champs indexer, (je ne maitrise pas l'indexation et ne sait pas ce que c'est), est ce que ceci pourrait avoir un rapport avec mon problème ?

Je vous remercie pour le temps que vous pourrez consacrer à ma requête, cordialement Enzo68290

15 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
10 juin 2011 à 10:08
Salut

Dans ta requète, d'où proviennent les Values ?
Tel que tu l'écris, ce devrait être les noms des champs de la même table. Bizarre.

As-tu fais une recherche/lecture des questions du forum en recherchant "insert into" ?

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)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 juin 2011 à 10:45
Salut,

Il faut revoir comment faire une requete les principe de base

"INSERT INTO Client
(NumClient,NomClient,age) VALUES('titi','toto',30)" 


Les chaine des caractere sont entre '' et les données numériques
avec un . exemple 15.5

Mais il est préferable d'utilisees les requetes paramétrées pour evité se poser se type de question.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
10 juin 2011 à 12:53
Hello, je tiens déjà à vous remercier pour vos réponses des plus rapides.

En suite, pour répondre à Jack (que je connais apparemment d'autre post précédents), je transmet effectivement les values de la façon suivante :

cmd.Parameters.AddWithValue("V_coID", tabebp(2, i))

(j'utilise un tableau de valeur récupéré dans le premier logiciel pour faire l'insertion dans le deuxième)

En suite pour répondre à nhervagault, effectivement tu as raison, il faut les " ' ", je les ai oublier (la dernière fois que j'ai vais du SQL remonte à mon BTS), je vais faire l’essai de suite et vous tien au courant;

Il me semble que mon prof nous avait dis que en SQL pour access se n'était pas important, mais je me rappel l'avoir fait sous oracle, peut être as tu raison.

Merci encore à jack une nouvelle fois pour son aide fort utile.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
10 juin 2011 à 12:55
Je vais quand même essayer, mais l'exemple que j'ai télécharger depuis codes sources n'en dispose pas, pour les 2 secondes que je perdrais à faire le test je vais tout de même essayé.
0

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

Posez votre question
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
10 juin 2011 à 13:04
Faut croire que vous aviez raisons pour les " ' ", je me bute à une autre erreur, je vais voir ce que je peu faire, si c'est quelque chose du à mon inattention ou à ma non-intelligence, je vous tiens au courant dès que possible.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 16:09
Bon, après beaucoup de retard (pas mal de taf), je reviens vers vous, car je n'y arrive pas.

J'ai mine de rien avancer pas mal, et restructurer mon code de façon plus propre, voici ce que donne ma nouvelle requête SQL :


INSERT INTO Client (ContactClient,MailClient,TelFixe,TelFax,Adresse1,Adresse2,Adresse3,Ville,Titre,Groupe,Civilite,coID)
VALUES ('Jean Claude bidule','mail@wanadoo.fr','03 54 51 32 00','03 40 29 35 90','33 rue du 8ème pot de peinture','France','68000','Ville','Changeur d’ampoule','Client','Monsieur','IDContact01');" String


J'obtiens avec ceci l'erreur suivante :


L'instruction INSERT INTO contient le nom de champ inconnu suivant : 'ContactClient'. Assurez-vous que vous avez correctement saisi le nom, puis recommencez l'opération.


Je précise que le champ Contact Client existe bien dans la table client de ma base de données,

Quelqu'un aurait-il une idée ?

Cordialement Enzo68290
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 juin 2011 à 16:13
Salut,

Peux-tu envoyer le script de création de ta table?

Merci.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 16:14
Je n'ai pas créer la table, elle est déjà existante dans un logiciel vers lequel je vais inséré des données.

Je ne peux donc pas te donner le script que je n'ai du fait pas fait.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 16:15
Je vous explique très brêvement ce que je fais, sa vous aidera peut être aussi à mieux cerner ce que j'essaye de faire.

J'ai le logiciel EBP Vente Flash, et le logiciel Prospective.

Les deux fonctionnes avec access, et pour ne pas ressaisir les données dans les deux, je fait un petit logiciel intermédiaire qui synchronisera les données entre ces deux logiciels.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 juin 2011 à 16:23
Es-tu sur du nom de la colonne?

Il y a pas d'espace
dans ce cas il faut mettre
[nom de la colonne sous access ou sql server]

Car le message indique une colonne inexistante (ou erreur d'orthographe)

Arrives-tu directement avec access à insérer des données?
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 16:23
C'est bon la requête passe, je me connectais pas à la bonne base, EBP au lieu de prospective, forcément ça ne va pas.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 16:50
Nickel tout marche, maintenant je rencontre un soucis avec la phrase " l'école du cirque ".

Le soucis vient de la quotte " ' ", et je ne parviens pas à résoudre le problème en faisant une pseudo fonction addslashes comme en PHP, une idée ?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 juin 2011 à 17:26
Utilises les requetes paramétrées cf le message de vendredi 10 juin.
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 17:35
jusque la ok, mais, qu'est donc qu'une requête paramétré ? je n'en est pas idée.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 juin 2011 à 23:01
Regardes ici pour voir le principe et le traduire en vb ensuite.
0
Rejoignez-nous