Requete

rony - 7 mai 2001 à 13:01
 jeromax - 7 mai 2001 à 15:23
bjr

dans ma base access j'ai crée une requête nommée agen regoupant 2 tables

Le script de ma page asp est le suivant

<%

' Ouverture de la connexion avec la base de données
Set con = Server.CreateObject("ADODB.Connection")
' chaine de connexion
connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath(".") & "/agc.mdb"
con.Open connstring
' Ouverture du jeu d'enregistrements
Set RS = Server.CreateObject( "ADODB.Recordset" )
RS.ActiveConnection = Con
RS.CursorType = 3
sql = "SELECT * FROM agen "
RS.Open sql

%>

<%if RS("agenda_7H00")<>"" then%><%=RS( "crenaux_7H00" )%><%End if%>

Je souhaite que si agenda_7h00 est vide il m'affiche crenaux_7h00

or ce code ne tient pas compte de ma condition <%if RS("agenda_7H00")<>"" then%>

dans tous les cas c'est crenaux_7H00 qui s'affiche

pourtquoi?

merci

3 réponses

Es-tu sûr que les lignes sont "" et non pas NULL?
Tu ne donne pas le source de ta page entière, on ne peut pas savoir comment tu parcours le résultat de ta requète...
0
ca ne marche pas avec:<%if isnull(RS("agenda_7H00")) then%><%=RS( "crenaux_7H00" )%><%End if%>

voici mon code complet

<%

' Ouverture de la connexion avec la base de données
Set con = Server.CreateObject("ADODB.Connection")
' chaine de connexion
connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath(".") & "/agc.mdb"
con.Open connstring
' Ouverture du jeu d'enregistrements
Set RS = Server.CreateObject( "ADODB.Recordset" )
RS.ActiveConnection = Con
RS.CursorType = 3
sql = "SELECT * FROM agen "
RS.Open sql

%>

<%
WHILE NOT RS.EOF
%>

<%if isnull(RS(\"crenaux_7H00\")) then%><%=RS( \"agenda_7H00\" )%><%End if%>
</td>
">

,
7H00,
<% if RS("agenda_7H00")<>"" then%><%=RS( "crenaux_7H00" )%><%End if%>,
">

<%
RS.MoveNext
WEND
%>
0
tu dois te positionner sur la premiere ligne de ton enregistrement avant de commencer le traitement:
<%RS.Open sql
RS.movefirst
WHILE NOT RS.EOF
%>
Ensuite le mieux est que le champ crenaux_7H00 ne dois pas être NULL dans ta table (moi je mets toujours une chaine vide par défaut lorsque c'est un varchar)
Tu peux alors tester si la chaine est vide ou pas.
Si tu ne peux pas ou plus modifier ta table, tu dois d'abord faire un test pour savoir si ton champ n'est pas NULL puis s'il n'est pas vide
genre:
<%
if isnull(RS("crenaux_7H00")) then
RS( "agenda_7H00" )
else
if RS("crenaux_7H00")="" then
RS( "agenda_7H00" )
end if
End if
%>

c'est un peu galère mais bon...
0
Rejoignez-nous