Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2008, 18h29   #1
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Par défaut j'ai un message d'erreur lorsque je veux ajouter dans ma base de donnée

Bonsoir,

J'ai créer un formulaire qui permet d'ajouter des champs saisie dans ma base de donnée. Le problème qui se pose c'est que j'ai un message d'erreur qui me dit un paramètre attendu. Voici le code.

Mon formulaire qui permet d'ajouter un utilisateur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
<form action="traitement_ajout.asp" name="ajouter" method="post">
	<table border="2">
	<tr>
		<td>Nom : </td>
		<td><input type="text"  name="nom"/></td>
 
	</tr>
	<tr>
		<td>Prenom : </td>
		<td><input type="text"  name="Prenom" /></td>
 
	</tr>
 
	<tr>
		<td>Email: </td>
		<td><input type="text"  name="Email" /></td>
	</tr>
	<tr>
		<td>Pseudo : </td>
		<td><input type="text"  name="Pseudo" /></td>
	</tr>
	<tr>
		<td>alias : </td>
		<td><input type="text"  name="Alias"/></td>
	</tr>
	<tr>
		<td>Information : </td>
		<td><input type="text"  name="information"/></td>
	</tr>
	<tr>
		<td>Note : </td>
		<td><input type="text"  name="Note"/></td>
	</tr>
	<tr>
		<td>Niveau : </td>
		<td><input type="text"  name="niveau"/></td>
	</tr>
 
	</table>
	<input type="submit"  value="Ajouter" name="Ajouter"/>
	<input type="button" value="Retour" onclick="document.location.href='index.asp?page=mapage" />
</form>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
 
'je récupère les champs saisi par l'utilisateur
 
nom = Request.Form("nom")
Prenom = Request.Form("Prenom") 
Email= Request.Form("Email") 
Pseudo = Request.Form("Pseudo")  
Alias = Request.Form("Alias")  
information = Request.Form("information")  
Note = Request.Form("Note")  
niveau = Request.Form("niveau")
 
 
 
'requete '
dbPath = Server.MapPath("base/mabase.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};"&" DBQ="&dbPath
sql= "INSERT INTO tmatable (nom,Prenom, Email, Pseudo, Alias, information, Note, Niveau) VALUES('"& nom & "', '" & Prenom & "', '" & Email& "', '"& Pseudo & "',  '"& Alias & "', '" & information & "', "& Note & ", '" & niveau & "');"
Set RS = server.createobject("ADODB.Recordset")
RS.Open SQL,Conn , 3, 3 %>
Je pense qu'il faut que j'ajoute l'id (clé primaire) , mais sachant qu'elle est auto-incrémenté dans la base de donnée access et je ne connais pas la syntaxe pour pouvoir ajouter un id auto-incrémenté.
Donc si vous pouvez m'aider s'il vous plait.

J'espère que j'ai bien expliquer mon problème.

Merci d'avance pour votre aide.
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2008, 20h37   #2
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Salut,

Pour restreindre les erreurs de syntaxe tous les champs susceptible de contenir un ' tu dois doubler celui-ci avec replace afin d'éviter de dire à ta requete qu'elle se termine en plein milieu.

Soit :
Code asp :
1
2
nom = request.form("nom")
nom = replace(nom,"'","''")

Ensuite met en commentaire tout ce qui permet d'établir la connexion avec la bd (sauf la requete) et fait un

Ensuite récupère ce que t'affiche la requête pour l'essayer sur Access tu comprendras peut être mieux l'erreur

PS : Affiches nous le message d'erreur, merci.
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2008, 20h40   #3
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Ok merci je vais tester.
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 16h48   #4
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Je voudrai savoir une chose, comment ajouter un l'id_personne sachant que dans la base de donné l'id_personne est Auto_numérique.
Je m'explique:
L'utilisateur pourra ajouter une personne, il devra remplir un formulaire danslequelle il renseigne le nom, le prénom, son niveau etc... Mais l'd n'est pas saisi par l'utilisateur puisque il est auto-incrémenté dans la base de donnée.
Donc je souhaiterai savoir comment faire pour pouvoir ajouter l'id dans la base de donnée tout en précisan kil est auto-incrémenté.

Je sais pas si j'ai bien expliqué.
En tout cas poser moi toute les questions si ce n'est pas clair.
Merci d'avance pour votre aide.
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 16h55   #5
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Salut,

Recherche du côté de IDENTITY_INSERT.

A+
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 17h03   #6
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
ok merci... J'ai pas précisé j'utilise une base de donnée ACCESS
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 17h54   #7
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Je voulais savoir si cette manière d'ajouter fonctionne avec une base de donnée ASP :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
requeteAjout="SELECT * FROM matable"
 
Set Rs = Server.CreateObject("ADODB.Recordset")
 
Rs .Open requeteAjout, maConnexion , 3, 3
 
Rs .AddNew
 
Rs ("numéro")="" -->  je met rien car le numèro est la clé primaire et el est auto-incrémenté.
Rs ("Titre")=Request.form("Titre")
 
Rs .UpDate

Merci d'avance pour vos réponse
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 18h11   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,
Citation:
Envoyé par mademoizel Voir le message
avec une base de donnée ASP :
Ca n'existe pas une base de données ASP.
Sinon, il n'est pas necessaire de spécifier quoi que ce soit pour un champ autoincrémenté. En faisant
Tu spécifies quand même une valeur pour ce champ. Tu n'as qu'à faire:
Code :
1
2
3
Rs.AddNew
Rs("Titre")=Request.form("Titre")
Rs.UpDate
A part ça, je te conseil plutôt d'utiliser des requetes de type "INSERT" pour ajouter des enregistrements à tes tables. Ta methode fonctionne mais est assez "instable". Dans ton cas, cela donnerait
Code :
1
2
3
4
5
 
Set cm = server.create("ADODB.Command")
cm.Connection = maConnexion
cm.CommandText = "INSERT INTO MATABLE (TITRE) VALUES ('" & Request.form("Titre") & "');"
cm.Execute()
Tu peux chercher dans le forum, y'a des tonnes d'exemples.
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 18h17   #9
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Oui dsl, je voulais dire une base de donnée access.
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 20h38   #10
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Il ne faut surtout rien mettre à un champ auto-incrémenté, comme son nom l'indique il s'auto incrémente alors pourquoi vouloir lui mettre une valeur.

De plus, en faisant cela, tu risques plus d'entrée en conflit qu'autre chose. Quand tu fera une insertion, ta ligne sera auto incrémenté et oui la base sait faire ça

Pour le Addnew utilise le en VBA si tu veux, mais en ASP un insert est bcp plus simple.
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 20h57   #11
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Merci bcp vos réponses, je vais essayer de bien regarder mon code sa doit être une erreur stupide.
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web