Addnew n'enregistre pas dans ma DB Access

Signaler
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005
-
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005
-
Dernier recours le forum... Quelqu'un pourrait me dire en quoi mon code ci-dessous est incorrecte? L'update ne s'effectue pas dans Access et je n'ai aucun msg d'erreur...
Merci bcp d'avance!!

accessdb="DB\MIS_db.mdb"
mydsn="DRIVER={Microsoft Access Driver (*.mdb)};"
mydsn=mydsn & "DBQ=" & server.mappath(accessdb)
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open mydsn
strSQL = "SELECT * FROM IR2"
set rs = conn.Execute(strSQL)

rs.Addnew rs("PERNR")= request.form("PER_number")
rs("NAME")= request.form("Name")
rs("DEP")= request.form("Department")
rs("TITLE")= request.form("Request_title")
rs("TYPE")= request.form("Request_type")
rs.update
rs.close
Conn.Close
%>

<!--</FORM> -->

14 réponses

Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

fais plutôt
set rs=resver.createObject("adodb.recordset")
rs.source=strSQL
rs.CursorType = 1
rs.CursorLocation = 2
rs.LockType = 3
rs.open

Cordialement
Roro webDev
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

'rci Roro.. mais je comprend pas ça ne fonctionne pas non plus... Ma DB reste vide et le code à l'air correct. J'ai pourtant bien mis les droits d'écriture par mon serveur IIS... J'offre TOUTE ma gratitude à celui qui sera me dire pk . (Vous battez pas quand même )
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Oui, j'ai oublié de rajouter
rs.activeConnection=mydsn ... et mydsn est faux :

accessdb="/DB/MIS_db.mdb"
mydsn="DRIVER={Microsoft Access Driver (*.mdb)};"
mydsn=mydsn & "DBQ=" & server.mapPath(".") & accessdb

vire l'objet conn qui ne sert à rien, dont le nom heurte les oreilles sensibles, et qui surtout mobilise de la ressource serveur pour rien.
Pour résumer :

strSQL = "SELECT * FROM IR2"

set rs=resver.createObject("adodb.recordset")
rs.source=strSQL
rs.CursorType = 1
rs.CursorLocation = 2
rs.LockType = 3
rs.open

rs.Addnew
rs("PERNR")= request.form("PER_number")
rs("NAME")= request.form("Name")
rs("DEP")= request.form("Department")
rs("TITLE")= request.form("Request_title")
rs("TYPE")= request.form("Request_type")
rs.update
rs.close

si ça, ça ne marche pas ...

Cordialement
Roro webDev
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

Et si ça ne marche pas?
C'est bizarre qu'avec ma méthode j'arrive à lire dans access et afficher sur une page html ( <%=rs("PERNR")%> ) et avec la tienne rien....
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Si ma méthode ne marche pas, il faut chercher ailleurs le défaut, car c'est celle que j'utilise tous les jours. Je suis un peu sceptique sur le fait d'afficher <%= quelquechose %> dans une page html. Si tu veux m'envoyer tes codes, je veux bien jeter un coup d'oeil.
Cordialement
Roro webDev
Messages postés
136
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2012

Tiens essayes ca :
<%
Conn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.mapPath("database/base.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM IR2"
rs.Open SQL, conn ,3 ,3


rs.addnew
rs("PERNR")= request("PER_number")
rs("NAME")= request("Name")
rs("DEP")= request("Department")
rs("TITLE")= request("Request_title")
rs("TYPE")= request("Request_type")
rs.update


response.redirect "ta_page_de_redirection.asp"
%>

Evite d'utiliser des termes de language dans tes champs
Messages postés
136
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2012

Je voulais rajouter que de conn jusqu'à database/base.mdb") c bien entendu sur la meme ligne et que j'entend par termes de language les trucs du style ton champs type... voila

Bonne journée a toi
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

Excellent!!!
Merci les amis!!!! Après moulte et moulte investigations, par chance, par bonheur ou par pur hasard, j'ai retiré la "merveilleuse" ligne de code : On error resume next!!! Cette ligne me cachait des erreurs de connection insoupçonnées...
Mucha gracias à tous les deux d'y avoir passé du temps.!
Danke en bedankt!
Thanks you

Moi.
Messages postés
136
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2012

De rien on est la pour s'entraider et trouver notre bonheur
Je paries que ton probleme se situait au niveau de ton antislash qui aurais dût etre un slash ?

Bonne journée
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

LOL, et non j'avais essayé cela... LES problèmes étaient dû à un manque de privilèges sur la Db en déclarant la connection (la lecture fonctionnait mais pas l'écriture), au recordset qui était mal défini et à certaines méthodes non existance. (rs.Source) Faut dire aussi que j'ai essayé environ dix mille différentes manières de connection.. ;-)

Bonne journée...
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Vu ke tu as réussi, pouré tu me dire ou ece kon modifie les droit d'ecriture pour la base car etan debutan je ne C pa..
Je te seré reconnaissan de me "colé" ton code aussi, ca seré sympa, car je suis en trin de faire presqu pareil et je ni arriv pa moi non plu

Voila, merci
++
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

lol oki pas de problème. Voici mon code:
Conn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.mapPath ("DB\MIS_db.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM IR_information"
rs.Open strSQL, Conn ,3 ,3

'Je pense que les doits se mettent ici au moment de l'ouverture (open) de la DB (3,3) Je ne connais pas les différentes options...

rs.AddNew
rs("PERNR")= request.form("PER_number")
rs("NAME")= request.form("Name")
rs.update
rs.close

Dis si ça court...
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Disons que pour le moment, ca ne court pas tro tro....
Enfin ca ma avancé qd mêm mé il me reste des erreur de doublon tré sympathiqu

Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E2F)
[Microsoft][Pilote ODBC Microsoft Access] Modifications non effectuées: risque de doublons dans champs index, clé principale ou relation interdisant les doublons. Modifiez les données des champs contenant les doublons, enlevez ou redéfinissez l'index pour permettre les doublons et recommencez.

A moi de reglé ca
Merci qd mêm pr l'avancemen

++
Messages postés
12
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
2 février 2005

Oui ton problème est plus dans ta DB. Si tu permets l'enregistrement de records identiques, retire l'index du/des champ(s) concernés. (Yes (Duplicates OK))