IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

j'ai un message d'erreur lorsque je veux ajouter dans ma base de donnée


Sujet :

ASP

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre Expert
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Ok merci je vais tester.

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    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.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Salut,

    Recherche du côté de IDENTITY_INSERT.

    A+

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    ok merci... J'ai pas précisé j'utilise une base de donnée ACCESS

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Je voulais savoir si cette manière d'ajouter fonctionne avec une base de donnée ASP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Oui dsl, je voulais dire une base de donnée access.

  10. #10
    Membre Expert
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Par défaut
    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.

  11. #11
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Merci bcp vos réponses, je vais essayer de bien regarder mon code sa doit être une erreur stupide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/01/2015, 13h48
  2. [XL-2007] Message d'erreur à la suppression de colonnes dans la feuille de données d'un graphique
    Par Airone1CF03 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/06/2012, 08h57
  3. Afficher un message d'erreur lorsque nul
    Par majudis dans le forum VBA Access
    Réponses: 8
    Dernier message: 08/12/2009, 08h58
  4. Réponses: 5
    Dernier message: 27/06/2006, 12h27
  5. message d'erreur lorsque j'essaie de changer la valeur d'un champ.
    Par cladsam dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2006, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo