Perfecto como siempre, Dazuaga.
El ejemplo está en práctica en
http://granadalinks.com/asesur/diccionario.asp, es una página en pruebas.
Las iniciales son enlaces internos al lugar donde aparece la primera palabra de cada letra.
Aquí dejo el código, seguro que puede ser optimizado:
<%
strSQL2 = "SELECT Left(diccionario.concepto,1) AS Inicial, Count(Diccionario.concepto) AS CantidadPalabras FROM diccionario GROUP BY Left(diccionario.concepto,1) ORDER BY Left(diccionario.concepto,1)"
Set rs2 =Server.CreateObject("ADODB.RecordSet")
rs2.Open strSQL2, conn, 3%>
<div style="text-align:center">
<%do while not rs2.eof %>
<a href="#<%=rs2("Inicial") & "1"%>"><%=rs2("Inicial")%></a>
<%rs2.movenext
loop%>
</div>
<%rs2.movefirst
do while not rs2.eof
strSQL="SELECT * FROM diccionario WHERE concepto LIKE '"&rs2("Inicial")&"%' ORDER BY concepto"
Set RS =Server.CreateObject("ADODB.RecordSet")
RS.Open strSQL, conn, 3
contador=1
do while not rs.eof%>
<a name="<%=rs2("Inicial") & contador%>"></a>
<p><strong><%If Not trim(RS("concepto"))= "" Then Response.Write RS("concepto")%></strong><br />
<%If Not trim(RS("significado"))= "" Then Response.Write Replace(rs("significado"), Chr(13), "<br />")%>
</p><br />
<%
rs.movenext
contador=contador+1
loop
rs2.movenext
loop
Set strCon = Nothing
rs2.close
set rs2 = nothing
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
Y una preguntilla de SQL: ¿Qué diferencia hay entre DISTINCT Y GROUP BY? Yo pensaba inicialmente que el SQL se haría utilizando DISTINCT.