Hej Behöver hjälp med följande: (skall försöka att förklara bättre den här gången) I tidigare tråd i samma ämne föreslogs att du delar upp hämtningen från db med två olika loppar. Kika på: [ADODB: Command.Prepered] Tack för att ni försöker få en sån idiot som mig att förstå. Kompiera databasen, töm den och lägg in lite exempel data. Skicka upp den och såd u vill ha sidan så kan vi hjälpa dig. Använd SQL sats "SELECT * FROM [tabell] WHERE LEFT(Fodelseplats, 1) = '" & strOrt & "' ORDER BY Fodelseplats, personnamn" Hej!! Nu har jag fått det att funka, det är bara det att jag skulle vilja ha hjälp med VAR jag skall skriva in meddelandet "Tyvärr fanns det inga orter på A" typ.Sortering
Har 3 st kolumner i Databasen som heter Fodelseplats, Dodplats och personnamn.
När man klickar på en bokstav tex B skall ortnamnen radas upp inklusive de personerna som föddes eller dog där.
Jag kan endast få till det om jag har bara tex fodelseplats, men även då så radas det upp så här:
"Ortregister"
------------------------
Baldersberg, Ukna (H
Månsson
Baldersberg, Ukna (H)
Fröman
Baldersberg, Ukna (H)
Andersson
Baldersrum Gamleby (H)
Persdotter
Baldersrum Gamleby (H)
Mårtensdotter
--------------------------------------
Jag vill ha det så här:
Baldersberg, Ukna (H)
Andersson
Fröman
Månsson
Baldersrum Gamleby (H)
Persdotter
Mårtensdotter
----------------------------------------
altså ortnamnet skall endast stå 1 gång.
Jag vill också ha med dodplats och då skall ju den dödsplatsen ingå i listan "Ortregister"
NinaSv: Sortering
1. Läs in alla ortsnamn som stämmer med klickad bokstav.
2. Skriv ut första orten i ovan resultat <b>Ortnamn 1</b>
3. Hämta alla personer som i någon av de både kolumnerna (dodplats el fodelseplats) matchar det ortsnamn i p. 2.
4. Stega vidare till nästa ortsnamn.
Det innebär att du har två loopar i din ASP kod. En loop för alla ortsnamn och en loop för varje person som har med ortsnamnen i loop 1 att göra.Sv: Sortering
Demonstrerar hur du kan använda ett hirarkiskt recordset, MSDataShape.Sv: Sortering
Jag blir rädd när jag ser att den koden som i 79909.
Jag är som sagt ingen utvecklare.. :-(
Jag ger upp!
mvh NinaSv: Sortering
Sv: Sortering
Byt ut "tabell" mot din tabells namn.
Alltså, följande kod ska hämta ut datan och skriva ut den.
<code>
Dim strOrt, strSQL, strOrt1, strOrt2
strOrt = "B" 'Första bokstaven i ortnamnet
strSQL = "SELECT * FROM [tabell] WHERE LEFT(Fodelseplats, 1) = '" & strOrt & "' ORDER BY Fodelseplats, personnamn"
'Koden för att öppna databasen och hämta ut datan här
'Använd "strSQL" variabeln som SQL sats
'Anta att din recordset heter "Rs"
Do Until Rs.EOF
strOrt1 = Rs("Fodelseplats")
If strOrt1 = strOrt2 Then
'Samma ortsnamn
Response.Write(Rs("personnamn") & "<br>")
Else
'Annat ortsnamn
strOrt2 = strOrt1
Response.Write("<br>")
Response.Write(strOrt1 & "<br>")
Response.Write(Rs("personnamn") & "<br>")
End If
Rs.MoveNext
Loop
</code>
Är lite osäker på om "LEFT(Fodelseplats, 1) = '" & strOrt & "'" fungerar men vad jag minns ska det fungera. Om det inte fungerar kan man byta ut det mot Fodelseplats LIKE '" & strOrt &"%'
Hoppas att det här hjälpte dig!
Mvh,
Thomas VanhaniemiSv: Sortering
Om det inte finns några orter på en viss bokstav så skall man få detta meddelandet.
<%
Dim Conn
Dim rsPlatser
Dim rsPersoner
Dim strSQL
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("forskning.mdb")
strSQL = "SELECT plats1 As PlatsNamn FROM tabellen WHERE plats1 LIKE '" & strBokstav & "%' GROUP BY plats1 UNION" & vbCrLf & _
"SELECT plats2 As PlatsNamn FROM tabellen WHERE plats2 LIKE '" & strBokstav & "%' GROUP BY plats2"
Set rsPlatser = Server.CreateObject("ADODB.Recordset")
rsPlatser.Open strSQL, Conn
Set rsPersoner = Server.CreateObject("ADODB.Recordset")
Do Until rsPlatser.EOF
%>
<tr>
<td id="bbb" bgcolor="#DCBC9C" colspan="6"><% =rsPlatser("PlatsNamn") %> </font></td>
</tr>
<%
strSQL = "SELECT * FROM tabellen WHERE plats1 = '" & Replace(rsPlatser("PlatsNamn"), "'", "''") & "' OR plats2 = '" & Replace(rsPlatser("PlatsNamn"), "'", "''") & "' ORDER BY enamn asc"
rsPersoner.Open strSQL, Conn
%>
<%
Do Until rsPersoner.EOF
%>
<tr>
<td>"><% =rsPersoner("enamn") %> <% =RSPersoner("fornamn") %></td>
<td><% =RSPersoner("fodelsekort") %></td>
<td>-</td>
<td><% =RSPersoner("dodkort") %></td>
</tr>
<%
rsPersoner.MoveNext
Loop
rsPersoner.Close
rsPlatser.MoveNext
Loop
rsPlatser.Close
%>
mvh Nina