Formulaire asp sous base Access

cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003 - 10 sept. 2003 à 17:48
 slimen - 10 mai 2004 à 19:45
Bonjour,

J'ai le code suivant (dont je ne suis pas l'auteur) et je dois le modifier. Ce code affiche un formulaire qui lit une base de données access.
Les résultats sont affichés dans l'ordre croissant d'envoi, c'est à dire que le plus récent se met à la fin. Or, je dois le modifier pour que chaque nouvelle entrée se mette au début.
Je débute complètement en asp, et en access, et je patauge.
Je tiens à signaler que ce code fonctionne, même si comme on me l'a déjà fait remarqué il n'y a pas de requête SQL.
Si quelqu'un réussissait à me dépanner, ça serait sympa.

Merci






















Réf.
,
,

----

,

----

Lieu
:,
Date
:,
Durée
:,

----

,

,

,

----

,

----

Si cette offre vous intéresse,
notez la référence et cliquez sur le bouton "Postuler"

[emploi_fr.htm ] [emploi_fr.htm Page précédente]





29 réponses

omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
10 sept. 2003 à 19:45
salut
je pense que la requete sql est incluse ds le fichier dbconnect.asp car sur la ligne suivante
objRS.Open "offrefr", objConn,3,3
il est entrain dappeler la requete "offrefr" pour mettre les données dans le recordset.
pour faire ton tri tu dois le faire au niveaux de la requete!! si tu veux envoi moi le contenu du fichier dbconnect.asp pour que je puisse voir comment ca marche
a+
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
11 sept. 2003 à 11:46
Salut, merci d'essyaer de me donner un coup de main.
Voici la page dbconnect.asp

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nouvelle page 1</title>
</head>

<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ifotecdb1"
objConn.Open
%>

</html>
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
11 sept. 2003 à 12:03
je ne mattendais pas a voir le ficheir dbconnect comme ca, mais il me parit bon ce qui me laisse un peu reflechir cést le fait de ne pas trouver la requete sur ton code, car sur le code il ouvre bien qq chose avec l'instruction
objRS.Open "offrefr", objConn,3,3
verifie si sur la base de données il y a une requete aui s'appele offrefr, je pense qu'elle doit etre sur la base sinon je ne sais pas dou elle peut venir!!
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
11 sept. 2003 à 12:26
Le problème, c'est que access ne veut pas ouvrir la base de données. Je n'ai pu que l'ouvrir par excel en passant par msQuery. Là je vois bien qu'il y a trois tables dont offrefr

Si j'affiche l'interrogation SQL ça me donne ça :

SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail
FROM offrefr offrefr
ORDER BY offrefr.IDoffre DESC

(en passant par Query, j'ai demandé à ce que ça soit ordonnés par IDoffre desc)

Mais je ne m'y connais pas plus en ms Query qu'en access
0

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

Posez votre question
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
11 sept. 2003 à 13:46
est ce que ta essayé d'enlever DESC car si tu ne met rien il te sort les données dans lordre dans lequel il sont rentré du dernier au premier, si ca ne marche pas on pourra bidouller autre chose.

si ta un bouquin asp cherche si tu peux lire le recordset depuis la fin c a dire dans le sens inverse, je pense que tu peut faire objRS.MoveLast et la ca tenvoi vers le dernier enregistrement et de la tu commence a afficher dans le sens contraire de celui que tu actuellement donc ca te donnera lórdre inverse de ce que tá mtn!!
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
11 sept. 2003 à 14:39
Bah si je ne met pas desc, ça me donne ça :

SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail
FROM offrefr offrefr

En ce qui concerne MoveLast, en fait moi j'avais essayé avec MovePrevious et ça ne fonctionnait pas (je n'avais que la première entrée qui s'affichait, puis un message d'erreur)

Sinon je n'ai pas de bouquin d'asp ce qui complique encore plus ma tache
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
11 sept. 2003 à 15:41
bon la bidouille que je te propose mtn cést dimserer sur la BD un champ de numero automatique qui se sera incremeter a chaque fois que tu fais un enregistrement sur ta base et puis par la suite tu fais
ORDER BY num DESC
et la tu es sur davoir ton ordre decroissant du nouveau a l'ancien
courage tu vas y arriver ;)
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
11 sept. 2003 à 16:04
mais IDoffre, ça doit déjà être ça !
puisque c'est par ça que je triais en arrivant sur msQuery

quote "(en passant par Query, j'ai demandé à ce que ça soit ordonnés par IDoffre desc)"

mais à partir de query je vois pas ce que je pourrais changer à ça, puisque je n'arrive pas à l'avoir avec access
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
11 sept. 2003 à 16:48
ca mettonerai que ce soit ca je sais pas au fait ca depend du num qui est affiché, est ce que quqnd tu fais un nouvel enregistrement est ce que cést toi qui fait rentrer le IDoffre ou bien ca se fait automatiquement !!

si c automatique dans ce cas envoi moi ta base de données pour que je puisse y jeter un ptit coup doeil ok voici mon adress mail
omaroch@hotmail.com
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
11 sept. 2003 à 18:32
Ok je vais t'envoyer la base de données, ça sera peut-être plus simple.
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
11 sept. 2003 à 19:47
bon je viens de voir ta base de données et puis le IDoffre est bien un num automatique et donc jai tester dajouter un nouvel enregistrement et ca incremente bien et jqi testé aussi ta requete et ca me ressort dans lordre decroissant de IDoffre. donc tt marche, je ne sais pas dans quel ordre tu veux les faire sortir!!! et quand je met rien ca me sort lordre croissant
avec cette requette
SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail
FROM offrefr AS offrefr;
ORDER BY offrefr.IDoffre DESC

jobtient ca:
IDoffre ref date
50 sza 03/12/03(mon test dinsert°)
49 AD005 MARS
48 ADOO4 MARS
47 AD003 MARS
46 XT.02.03 1er Trim. 2003
44 03-DO-D-03-003 1er trimestre 2003
40 03-DO-D-016 1er trimestre 2003
38 03-DO-D-03-002 Au plus tôt
5 03.DO.D.003 Au plus tôt

donc moi je ne sais pas si c ca que tu veux obtenir ou bien si c ca que tu obtient et que tu ne veux pas donc tiens moi au courant
au fait ta base elle souvre avec un access XP si ta un 97 ca marche pas:-)
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
12 sept. 2003 à 12:10
C'est bien ça que je veux obtenir, il faut que les nouvelles entrées se mettent au début comme dans ton test.
Alors qu'est-ce qu'il faut que je fasse pour que ça s'affiche comme ça sur la page des offres puisque je ne peux rien faire à partir d'access (effectivement c'est access 97 que je dois avoir.)
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
12 sept. 2003 à 12:45
Et attends, il y a un autre problème (en dehors du fait que les pages offres_fr.asp et offres_us.asp ne s'affichent plus sur le site sur lequel je bosse) c'est qu'en comparant la base de données sur laquelle on travaille et les données qui sont affichées sur le site, on se rend compte que ce ne sont pas les mêmes. Et pourtant j'ai downloadé la BDD du ftp.
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
12 sept. 2003 à 13:35
bonjai rien compris a ton dernier message cést pas grave je reponds d'abord au premier:
la solution a suivre est d'inserer la requte sql sur ta page directement essaye de faire ca:--->
<%
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail FROM offrefr AS offrefr ORDER BY offrefr.IDoffre DESC", objConn,3,3
Do While Not objRS.EOF
%>
et tu me dis si ca marche et puis expliaue mieux ton dexieme prob car jai rien compris;-)
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
12 sept. 2003 à 15:02
Bon j'ai remplacé le code par celui que tu m'as donné mais je ne peux pas vérifier si ça fonctionne car j'ai un message d'erreur avec entre autre :

Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
/fr/dbconnect.asp, line 16

C'est ça que je te disais ds le message précédent, c'est que la page offres_fr.asp ne s'affichait pas.
Et je te disais aussi que la base de données access que j'ai sur mon pc et que je t'ai envoyé ne contient pas les mêmes données que celles qui s'affichaient ds le tableau sur la page offres_fr.asp quand celle-ci voulait bien s'afficher, alors que la base de données sur laquelle on travaille est censé être la même que celle du serveur ftp.
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
12 sept. 2003 à 15:22
je pense que la connection de la base de donnes ne se fait pas sur ta base de données elle se fait sur une autre qui se trouve sur un autre serveur je pense je ne suis pas si sure donc ce que va faire cést que tu enleve la partie include dbconnect.asp sur ta page et tu la remplace par le code suivant:
<%
DSN_BASE = "DBQ=" & Server.Mappath("db1.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"%>

<%
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.open DSN_BASE
%>
et tu laisse la requete inseré ds le code comme je t montré, attention la BD doit etre ds le meme repertoir que ta page asp. si ca ne donne rien envoi moi tt sur ma boite mail ou bien tu l'ajoute ici sur le site comme une source et tu me donne ensuite ladresse pour aller la chercher come ca je te ferai les modif necessaire pr que ca marche ok
a+
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
12 sept. 2003 à 17:56
Là ça me met ce message d'erreur :

Informations techniques (destinées au personnel du Support technique)

Type d'erreur :
Erreur d'exécution Microsoft VBScript (0x800A01F4)
Variable non définie: 'DSN_BASE'
/fr/offres_fr2.asp, line 4

Type de navigateur :
Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Crazy Browser 1.0.5)

Page :
GET /fr/offres_fr2.asp

Qu'est-ce que tu veux que je te donne exactement comme source ? Parce que c'est qd même un site professionnel qui m'appartient pas et je voudrais pas non plus en faire de trop.

J'ai créé une page offres_fr2.asp pour ces tests :

<%@ Language=VBScript %>
<% Option Explicit %>
<%
DSN_BASE = "DBQ=" & Server.Mappath("db1.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
%>

<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<%
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.open DSN_BASE
%>

<%
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail FROM offrefr AS offrefr ORDER BY offrefr.IDoffre DESC", objConn,3,3
Do While Not objRS.EOF
%>

<center>
Réf. <%Response.Write objRS("ref")%>
,
<% Response.Write objRS("domaine") %>,

----

<%Response.Write objRS("poste") %>,

----

Lieu
:,
Date
:,
Durée
:,

----

<%Response.Write objRS("lieu") %>,

<%Response.Write objRS("date") %>,

<%Response.Write objRS("durée") %>,

----

<%Response.Write objRS("détail") %>,

----

Si cette offre vous intéresse,
notez la référence et cliquez sur le bouton "Postuler"

[emploi_fr.htm ] [emploi_fr.htm Page précédente]

</html>

Tiens, je viens de me rendre compte qu'aucune page .asp du site ne fonctionne. C'est toujours la même erreur qui est affichée :

Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
/_private/dbconnect.asp, line 16

Si tu veux, voici la source de dbconnect.asp

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nouvelle page 1</title>
</head>

<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ifotecdb1"
objConn.Open
%>

</html>
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
15 sept. 2003 à 19:26
dsl pr le retard jai pas eu le temps de repondre plutot
bon concernat la premiere erreur il faut que tu enleve les 2 premieres ligne de ton code:
<%@ Language=VBScript %>
<% Option Explicit %>
et normalement ca devrait marcher je l'ai testé chez moi et ca tourne.
pour la seconde erreur si je vois que la source de la page dbconnect.asp et dans _private enleve la de private et met la dans le mme repertoire aue les autres pages asp. sinon pour ne pas te faire chier avec ce fichier tu ajoute dans chaque page asp le contenu de la page dbconnect et ca doit fonctionner ok allé bon courage
0
cs_Cento Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003
16 sept. 2003 à 12:07
Non, cela non plus ne fonctionne pas (envoie moi le code entier stp, au cas où j'aurais fait une erreur)
Pour la page dbconnect.asp il y en a une dans chaque répertoire.

Sinon j'ai pensé à quelque chose, mais je sais pas si c'est possible. Il faudrait que je me procure access 2000. Est-ce qu'il y aurait la possibilité en ouvrant la base de données avec access 2000 que j'ai la possibilité de modifier quelque chose directement dedans, l'enregistrer et la rebalancer sur le serveur.

La requête en elle-même doit être ds la base de données.
0
omaroch Messages postés 33 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 6 janvier 2004
16 sept. 2003 à 23:03
je ne sais pas pq ca ne fonctionne pas chez toi car chez moi ca mache nikel avec ce que je t doné comme indication mais bon je vais te filer le code et puis tu me dira ce que ca te donne:

<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<%
DSN_BASE = "DBQ=" & Server.Mappath("db1.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"
%>
<%
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.open DSN_BASE
%>

<%
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT offrefr.IDoffre, offrefr.ref, offrefr.date, offrefr.domaine, offrefr.poste, offrefr.lieu, offrefr.durée, offrefr.détail FROM offrefr AS offrefr ORDER BY offrefr.IDoffre DESC", objConn,3,3
Do While Not objRS.EOF
%>

<center>
Réf. <%Response.Write objRS("ref")%>
,
<% Response.Write objRS("domaine") %>,

----

<%Response.Write objRS("poste") %>,

----

Lieu
:,
Date
:,
Durée
:,

----

<%Response.Write objRS("lieu") %>,

<%Response.Write objRS("date") %>,

<%Response.Write objRS("durée") %>,

----

<%Response.Write objRS("détail") %>,

----

Si cette offre vous intéresse,
notez la référence et cliquez sur le bouton "Postuler"

[emploi_fr.htm ] [emploi_fr.htm Page précédente]

</html>

si ce code ne marche pas donc tu dois avoir un probleme au niveau du erveur et pas au niveau du code car le code marche tres bien
0
Rejoignez-nous