16 messaggi dal 07 febbraio 2008
Salve, avrei la necessità di visualizzare un recordset su più righe:

dato 1 dato2 dato3
dato 4 dato5 datoN

con il codice qui sotto riesco ma praticamente mi ripete i record per N volte dove N è il numero di record (ossia se ho 10 record li ripete 10 x 10 volte)

<%
Dim MM_conn_STRING
MM_conn_STRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & server.MapPath("../mdb-database/mydb.accdb")
%><head>
</head>
<%
Dim RSpiste
Set cn = Server.CreateObject("ADODB.Connection")
Set RSpiste = Server.CreateObject("ADODB.Recordset")
cn.open MM_conn_STRING
RSpiste.Open "SELECT * from piste order by citta_pista", cn, 1 
totale_record = RSpiste.recordcount
%>

<table width="100%" border="0">
  <tr><%if Rspiste.eof then
response.Write"<p>Nessun dato!!</p>"
Else
While RSpiste.eof = False
%>
<% For i = 1 to totale_record %>
    <td width="2%" align="right"></td><% A = i mod 3 %>
  <% if A = 0 then chiudi = "</tr><tr>" else chiudi = "" %>
    <td class="line_td_tracks"><span class="trak_title"><%=i%><%=rspiste("nome_pista")%> - <%=i%> di <%=totale_record%> e resto = <%=a%></td>
  <%=chiudi%><%next%><%
  RSpiste.movenext
  Wend
  'Loop
%>            
    </tr><%end if%> 
</table>
</body>
</html>
<%
RSpiste.Close()
Set RSpiste = Nothing
%>


Sbaglio sicuramente il ciclo ma non ne vengo al dunque
Grazie anticipatamente per chi potrà indirizzarmi.
11 messaggi dal 12 febbraio 2011
Bhe è chiaro detro il ciclo while c'è un ciclo for che cicla tutti i record e che non ti serve mentre se ho capito bene vuoi chiudere la riga dopo tre file di campi dello stesso record
Il primo problema lo risolvi togliendo il For ed il next, inizializando a 1 la variabile "I" prima di entrare nel ciclo e mettendo al posto del For l'incremento di "I" e cosi ogni tre giri setti chiudi a "riga successiva" (</tr><tr>)


.......
%>
<table width="100%" border="0">
  <tr>
  <%
  I=1
  if Rspiste.eof then
    response.Write"<p>Nessun dato!!</p>"
  Else
    While RSpiste.eof = False
      'For i = 1 to totale_record          <---   rimuovi
                        'aggiungi la riga sotto 
       I=I+1
        %>
          <td width="2%" align="right"></td>
        <% 
          A = i mod 3 
          if A = 0 then chiudi = "</tr><tr>" else chiudi = "" 
        %>
          <td class="line_td_tracks"><span class="trak_title"><%=i%><%=rspiste("nome_pista")%> - <%=i%> di <%=totale_record%> e resto = <%=a%></td>
          <%=chiudi%>
        <%
      'next          <---   rimuovi
      RSpiste.movenext
    Wend
    'Loop
    %>            
    </tr>
  <%
  end if
  %> 
.......


ciò non toglie che non ottieni il risultato voluto ....
Secondo me ti stai complicando la vita
11 messaggi dal 12 febbraio 2011
Così sarebbe molto piu semplice

<%
Dim MM_conn_STRING
MM_conn_STRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & server.MapPath("../mdb-database/mydb.accdb")
%><head>
</head>
<%
Dim RSpiste
Set cn = Server.CreateObject("ADODB.Connection")
Set RSpiste = Server.CreateObject("ADODB.Recordset")
cn.open MM_conn_STRING
RSpiste.Open "SELECT * from piste order by citta_pista", cn, 1 
totale_record = RSpiste.recordcount
%>

<table width="100%" border="0">
  <tr><%if Rspiste.eof then
response.Write"<p>Nessun dato!!</p>"
Else
  I=1
  While RSpiste.eof = False
    %>  
    <td width="2%" align="right"></td>
    <td class="line_td_tracks"><%=i%><%=rspiste("nome_pista")%></td>
    </tr><tr>
    <td width="2%" align="right"></td>
    <td class="line_td_tracks2"><%=rspiste("Altro_Campo1")%></td>
    </tr><tr>
    <td width="2%" align="right"></td>
    <td class="line_td_tracks3"><%=rspiste("Altro_Campo2")%> - <%=i%> di <%=totale_record%></td>
    </tr>
    <%
     I=I+1
    RSpiste.movenext
  Wend
end if
%> 
</table>
</body>
</html>
<%
RSpiste.Close()
Set RSpiste = Nothing
%>
16 messaggi dal 07 febbraio 2008
Giffissimo ha scritto:
Bhe è chiaro detro il ciclo while c'è un ciclo for che cicla tutti i record e che non ti serve mentre se ho capito bene vuoi chiudere la riga dopo tre file di campi dello stesso record
Il primo problema lo risolvi togliendo il For ed il next, inizializando a 1 la variabile "I" prima di entrare nel ciclo e mettendo al posto del For l'incremento di "I" e cosi ogni tre giri setti chiudi a "riga successiva" (</tr><tr>)


.......
%>
<table width="100%" border="0">
  <tr>
  <%
  I=1
  if Rspiste.eof then
    response.Write"<p>Nessun dato!!</p>"
  Else
    While RSpiste.eof = False
      'For i = 1 to totale_record          <---   rimuovi
                        'aggiungi la riga sotto 
       I=I+1
        %>
          <td width="2%" align="right"></td>
        <% 
          A = i mod 3 
          if A = 0 then chiudi = "</tr><tr>" else chiudi = "" 
        %>
          <td class="line_td_tracks"><span class="trak_title"><%=i%><%=rspiste("nome_pista")%> - <%=i%> di <%=totale_record%> e resto = <%=a%></td>
          <%=chiudi%>
        <%
      'next          <---   rimuovi
      RSpiste.movenext
    Wend
    'Loop
    %>            
    </tr>
  <%
  end if
  %> 
.......


ciò non toglie che non ottieni il risultato voluto ....
Secondo me ti stai complicando la vita


Grazie, così è perfetto.. l'altro tuo esempio non fa al caso mio dato dato che non devo visualizzare altri campi.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.