probleme en asp

probleme en asp - ASP - Programmation

Marsh Posté le 10-09-2004 à 13:09:56    

Bonjour
j'ai rencontrer un problème dans une requete pour acceder à ma base de donnée access.dans ma page asp il y a trois requete dont une seule qui ne marche pas celle de sql2. Voila la partie de mon programme ou ila y a le problème :
 
<% If msg = 1 then
   
   SQL="SELECT convive.* FROM convive "
   SQL= SQL & "WHERE (((convive.Matricule) like '%" & Matricule & "%'));"
   SET Connect = Server.CreateObject("ADODB.Connection" )
       connstring="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
       Connect.Open connstring
   SET RS = Connect.Execute(SQL)
       
  If rs.RecordCount <> 0 and not rs.eof Then
      nom = rs("Nom / Prénom" )
      categorie = rs("Tarif" )
       
      %>
      <font color="#99CCFF"><%=rs("Tarif" )%><p align="right"></font>
     <%
     SQL2="SELECT Tarif.*,Tarif.Mtnormal,Tarif.Mtameliore FROM Tarif "
  SQL2 =SQL2 & "WHERE (((Tarif.code) like '%" & categorie & "%'));"
  SET Connect2 = Server.CreateObject("ADODB.Connection" )
          Connstring2="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
          Connect2.Open connstring2
  SET RS2 = Connect2.Execute(SQL2)
         
%>    
      <font color="#99CCFF"><%=rs2("code" )%><p align="right"></font>
       
 
      <%
     
      mtn=rs2("Mtnormal" )
      mta=rs2("Mtameliore" )
   
      SQL="SELECT consommation.*, consommation.Matricule FROM consommation "
     SQL =SQL & "WHERE (((consommation.Matricule) like '%" & Matricule & "%')) ORDER BY Date;"        
     SET Connect = Server.CreateObject("ADODB.Connection" )
          connstring="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
          Connect.Open connstring  
     
     SET RS = Connect.Execute(SQL)
If rs.RecordCount <> 0 and not rs.eof Then
   prix1 = 0
     
   %>
   
<div align="center">
 
 
Le message d'erreur au lancement de ma page est le suivant :
 
Type d'erreur :
ADODB.Field (0x80020009)
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
/Restauration/Fiche consom.asp
 
 
Type de navigateur :
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
 
Merci d'avance.  
 
Page :
POST 32 bytes to /Restauration/Fiche consom.asp
 
POST Data:
Matricule=2411&CHERCHER=CHERCHER  
 
Heure :
vendredi 10 septembre 2004, 10:38:56  
 
 
Informations complémentaires :

Reply

Marsh Posté le 10-09-2004 à 13:09:56   

Reply

Marsh Posté le 10-09-2004 à 13:23:06    

Le message d'erreur me semble clair !
EOF BOF, ta requete ne retourne rien.  
Donc esaye de chopper le texte de SQL2 et verifie le !

Reply

Marsh Posté le 10-09-2004 à 14:09:10    

Merci d'abord
 
la table est plein, quand je deplace la requete sql2 au debut du traitement ca passe, je ne recois pas ce message et j'ai fais un tracage d'affichage du contenu du champ de recherche comme vous l'avez constater au programme ca me retourne des valeurs qui ne sonts pas exacte car ce n'est pas le bon emplacement parceque je dois avoir le contenu d'un champ de ma premier requete sql (categorie) pour effectuer sql2, je me demande pourquoi quand je place sql2  comme deuxième requete pour avoir le bon contenu de la variable de recherche il me sort ce message ,je pense comme ca vous pouvez plus comprendre mon message. Merci  

Reply

Marsh Posté le 10-09-2004 à 14:11:11    

gedeon a écrit :

Le message d'erreur me semble clair !
EOF BOF, ta requete ne retourne rien.  
Donc esaye de chopper le texte de SQL2 et verifie le !


 
 
Merci d'abord  
 
la table est plein, quand je deplace la requete sql2 au debut du traitement ca passe, je ne recois pas ce message et j'ai fais un tracage d'affichage du contenu du champ de recherche comme vous l'avez constater au programme ca me retourne des valeurs qui ne sonts pas exacte car ce n'est pas le bon emplacement parceque je dois avoir le contenu d'un champ de ma premier requete sql (categorie) pour effectuer sql2, je me demande pourquoi quand je place sql2  comme deuxième requete pour avoir le bon contenu de la variable de recherche il me sort ce message ,je pense comme ca vous pouvez plus comprendre mon message. Merci  

Reply

Marsh Posté le 10-09-2004 à 14:31:27    

Tu peux essayer ça ?  
SQL2 = <%=SQL2%>
<%    
'      mtn=rs2("Mtnormal" )
'      mta=rs2("Mtameliore" )
   
'      SQL="SELECT consommation.*, consommation.Matricule FROM consommation "
'     SQL =SQL & "WHERE (((consommation.Matricule) like '%" & Matricule & "%')) ORDER BY Date;"        
'     SET Connect = Server.CreateObject("ADODB.Connection" )
          connstring="DRIVER={Microsoft Access Driver (*.mdb)}; '"&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
'     Connect.Open connstring  
     
'     SET RS = Connect.Execute(SQL)
'If rs.RecordCount <> 0 and not rs.eof Then
'   prix1 = 0
     
   %>  
Et poster le resultat ?

Reply

Marsh Posté le 10-09-2004 à 15:47:41    

je porte à votre connaissance que je suis débutante en asp càd c'est ma première page web en asp et j'ai pas eu de formation en ce code(asp).
est ce que je doit inserer toutes ces lignes dans ma page et à quel niveau? Merci .  
 

gedeon a écrit :

Tu peux essayer ça ?  
SQL2 = <%=SQL2%>
<%    
'      mtn=rs2("Mtnormal" )
'      mta=rs2("Mtameliore" )
   
'      SQL="SELECT consommation.*, consommation.Matricule FROM consommation "
'     SQL =SQL & "WHERE (((consommation.Matricule) like '%" & Matricule & "%')) ORDER BY Date;"        
'     SET Connect = Server.CreateObject("ADODB.Connection" )
          connstring="DRIVER={Microsoft Access Driver (*.mdb)}; '"&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
'     Connect.Open connstring  
     
'     SET RS = Connect.Execute(SQL)
'If rs.RecordCount <> 0 and not rs.eof Then
'   prix1 = 0
     
   %>  
Et poster le resultat ?

Reply

Marsh Posté le 10-09-2004 à 16:05:21    

Bon ok , donc on va faire plus compréhensible
 
Remplace  
<%
     
      mtn=rs2("Mtnormal" )
      mta=rs2("Mtameliore" )
   
      SQL="SELECT consommation.*, consommation.Matricule FROM consommation "
     SQL =SQL & "WHERE (((consommation.Matricule) like '%" & Matricule & "%')) ORDER BY Date;"        
     SET Connect = Server.CreateObject("ADODB.Connection" )
          connstring="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
          Connect.Open connstring  
     
     SET RS = Connect.Execute(SQL)
If rs.RecordCount <> 0 and not rs.eof Then
   prix1 = 0
     
   %>  
par ça  
 
SQL2 = <%=SQL2%>
 
 
Et poste le resultat de la ligne :  
SQL2 = SELECT Tarif.*,Tarif.Mtnormal,Tarif.Mtameliore FROM Tarif WHERE .... etc

Reply

Marsh Posté le 13-09-2004 à 13:35:29    

Merci de votre comprehension.
J'ai fais ce que vous m'avez proposer mon nouveau programme est le suivant:
 
<% If msg = 1 then
         
   SQL="SELECT convive.* FROM convive "
   SQL= SQL & "WHERE (((convive.Matricule) like '%" & Matricule & "%'));"
   SET Connect = Server.CreateObject("ADODB.Connection" )
       connstring="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
       Connect.Open connstring
   SET RS = Connect.Execute(SQL)
       
  If rs.RecordCount <> 0 and not rs.eof Then
      nom = rs("Nom / Prénom" )
      categorie = rs("Tarif" )
      %>
   
      <font color="#99CCFF"><%=rs("Tarif" )%><p align="right"></font>
     
   
       SQL2 = <%=SQL2%>  
       
<% SQL2="SELECT Tarif.*,Tarif.Mtnormal,Tarif.Mtameliore FROM Tarif "
  SQL2 =SQL2 & "WHERE (((Tarif.code) like '%" & categorie & "%'));"
  SET Connect2 = Server.CreateObject("ADODB.Connection" )
          Connstring2="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
          Connect2.Open connstring2
  SET RS2 = Connect2.Execute(SQL2)
  mtn=rs2("Mtnormal" )  
  mta=rs2("Mtameliore" )  
 
 %>        
        <font color="#99CCFF"><%=rs2("code" )%><p align="right"></font>
 
 ça me donne tjs le message d'erreur suivant dont la ligne 51 est mtn=rs2("Mtnormal" ) :
 
Type d'erreur :
ADODB.Field (0x800A0BCD)
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
/Restauration/Fiche consom.asp, line 51
 
 
Type de navigateur :
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)  
 
Page :
POST 32 bytes to /Restauration/Fiche consom.asp
 
POST Data:
Matricule=2144&CHERCHER=CHERCHER  
 
Heure :
lundi 13 septembre 2004, 11:31:27  
 
 

gedeon a écrit :

Bon ok , donc on va faire plus compréhensible
 
Remplace  
<%
     
      mtn=rs2("Mtnormal" )
      mta=rs2("Mtameliore" )
   
      SQL="SELECT consommation.*, consommation.Matricule FROM consommation "
     SQL =SQL & "WHERE (((consommation.Matricule) like '%" & Matricule & "%')) ORDER BY Date;"        
     SET Connect = Server.CreateObject("ADODB.Connection" )
          connstring="DRIVER={Microsoft Access Driver (*.mdb)}; "&"DBQ="&Server.MapPath("." )&"/restauration.mdb"'
          Connect.Open connstring  
     
     SET RS = Connect.Execute(SQL)
If rs.RecordCount <> 0 and not rs.eof Then
   prix1 = 0
     
   %>  
par ça  
 
SQL2 = <%=SQL2%>
 
 
Et poste le resultat de la ligne :  
SQL2 = SELECT Tarif.*,Tarif.Mtnormal,Tarif.Mtameliore FROM Tarif WHERE .... etc

Reply

Marsh Posté le 13-09-2004 à 14:50:33    

:fou:  
enleve moi ça !!!!!
 
  mtn=rs2("Mtnormal" )  
  mta=rs2("Mtameliore" )
 
 :fou:  

Reply

Marsh Posté le 13-09-2004 à 14:51:42    

Et colle ça à la fin !  
SQL2 = <%=SQL2%>  
 

Reply

Marsh Posté le 13-09-2004 à 14:51:42   

Reply

Marsh Posté le 13-09-2004 à 17:03:11    

c'est fait et ça donne tjs le même message ce qui m'etonne c'est que quand je deplace la requete sql2 au début c à d après if msg = 1 ect je ne reçois pas de message et le programme tourne bien sauf les données de ma requete sql2 ne sont pas bonnes car elle est mal placer .Merci.
 

gedeon a écrit :

Et colle ça à la fin !  
SQL2 = <%=SQL2%>

Reply

Marsh Posté le 26-09-2004 à 20:43:43    

ferme les connexion avant chaque nouvelles requettes SQL  ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed