---
title: "Har Access databas ändrats??"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/131446-har-access-databas-ändrats"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "saw"
published: "2005-07-15T08:45:24.000Z"
updated: "2005-07-15T16:57:09.000Z"
replies: 10
views: 432
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/131446-har-access-databas-ändrats"
---

# Har Access databas ändrats??

## #1 — saw, 2005-07-15T08:45Z

Jag är väldigt osäker på om detta är rätt forum men..
Är det någonting som har ändtats i Access databas?
Jag använder mig av Access via gamla hederliga ASP, och har inte
haft några som helst besvär, tvärs om den har fungerat otroligt bra.

Bl a har jag en väldigt inveklad SQL(fick hjälp med den härifrån), som har fungerat klockrent. I dag så får jag ett error (både lokalt och via webservern) 

```
Microsoft JET Database Engine error '80004005' 
At most one record can be returned by this subquery.
```

Vad har hänt? :q

Permalänk: https://www.webforum.nu/p/131446

## #2 — yohpops, 2005-07-15T08:50Z

Du har troligen lagt in data så att en subquery returnerar fler än en rad.

Skicka sql-frågan.

Permalänk: https://www.webforum.nu/p/1646113

## #3 — saw, 2005-07-15T09:36Z

Ok, men den är stor och inveklad.

```
SELECT t_Album.Bild, t_Album.Album, s.songtitel AS Sångtitel, 
(SELECT TOP 1 namn FROM t_songforfattare INNER JOIN t_forfattare ON t_songforfattare.for_id = 
t_forfattare.for_id WHERE ArrNo = s.ArrNo ORDER BY t_songforfattare.for_id ASC) AS Författare, 
(SELECT TOP 1 namn FROM t_songforfattare INNER JOIN t_forfattare ON t_songforfattare.for_id =
 t_forfattare.for_id WHERE ArrNo = s.ArrNo AND t_songforfattare.for_id > 
(SELECT TOP 1 for_id FROM t_songforfattare WHERE ArrNo =
 s.ArrNo ORDER BY for_id ASC) ORDER BY t_songforfattare.for_id ASC) AS Författare2,
(SELECT TOP 1 namn FROM t_songforfattare INNER JOIN t_forfattare ON t_songforfattare.for_id =
 t_forfattare.for_id WHERE ArrNo = s.ArrNo AND t_songforfattare.for_id > 
(SELECT TOP 1 for_id FROM t_songforfattare WHERE ArrNo = 
s.ArrNo AND t_songforfattare.for_id >
(SELECT TOP 1 for_id FROM t_songforfattare WHERE ArrNo = 
s.ArrNo ORDER BY for_id ASC) ORDER BY t_songforfattare.for_id ASC)) AS Författare3 
FROM t_songtitlar AS s INNER JOIN t_Album ON s.Album =
 t_Album.CD_ID
```

Det märkvärdiga är att den fungerade igår, och jag har inte gjort
 några uppdateringar eller insert.

Permalänk: https://www.webforum.nu/p/1646127

## #4 — saw, 2005-07-15T11:07Z

Jag har hittat felet, justerat i databasen, så fungerar detta.
Orsaken till dubbleterna blev, att jag inte har fått till det i ett
antal option-listor.
I min SQL så får jag fram namn/en på författaren.
I optionboxen, så loppar jag fram alla namnen i databasen. Det 
jag ville ha fram, är om namnet i loopen är samma som i SQL:en
så skall namnet i optionboxen vara selectad.(hoppas att det inte låter för krångligt).

```
'rst("Författare") är variabel ifrån den stora SQL:en här ovan.
'RS2("Namn") ifrån en SQL som loppar igenom namnen på alla
författarna.
<select  CLASS="SKUGGA" SIZE="1" Style ="width: 120" NAME="Forfattare">
<option></option>
 <% Do While Not RS2.EOF
 on error resume next

 if(RS2("Namn"))=rst("Författare") then
sel="selected"
 err.cleare
 end if
 %>

  <option <%=sel%> value="<% = RS2("For_Id") %>"><% = RS2("Namn") %></option>
 <% RS2.movenext
loop %>
 <option value=""></option>
 </select>
```

Borde inte detta fungera??(Jag får upp fel namn hur jag än gör.

Permalänk: https://www.webforum.nu/p/1646155

## #5 — J.N., 2005-07-15T11:30Z

HEJ!

Vad får du får kod?
Vilken blir vald?
Om du skriver ut dina värden, vad får du då?

Det jag ser direkt, och som man lätt missar, är att du inte nollställer sel, dvs när du väl får en träff, blir alla andra också valda efteråt.

Permalänk: https://www.webforum.nu/p/1646162

## #6 — @nders, 2005-07-15T11:36Z

Jag förstår inte riktigt meningen med on error resume next heller.

Dessutom heter det err.clear, inte clear**e**.

Permalänk: https://www.webforum.nu/p/1646168

## #7 — saw, 2005-07-15T13:42Z

On error tog jag med för att jag fick ett fel, den är borta nu.
Jag har kommit en bit på vägen, men inte ända fram.

```
if rst("Författare") = RS2("Namn") then
  response.write RS2("Namn")& "OK<BR>	 	
  else
  response.write RS2("Namn")& "nix<BR>"
  end if
```

Om jag skriver så här, då ser jag att den välger ut rätt.
Om jag lägger till variablen "sel="selected"" och lägger in den

```
<option selected="<%=sel%>" value="<%= RS2("For_Id") %>">
<%= RS2("Namn") %></option>
```

Då markeras inte rätt författare, utan den markerar den sista
förfatareni databasen.

Permalänk: https://www.webforum.nu/p/1646206

## #8 — J.N., 2005-07-15T13:48Z

HEJ!

> **J.N. skrev:**
>
> Det jag ser direkt, och som man lätt missar, är att du inte nollställer sel, dvs när du väl får en träff, blir alla andra också valda efteråt.

Citerar mig själv, sätt den till "" i slutet av loopen.

Permalänk: https://www.webforum.nu/p/1646207

## #9 — saw, 2005-07-15T15:18Z

De hjälpte inte, den markerar trots allt det sista namnet.

Permalänk: https://www.webforum.nu/p/1646227

## #10 — saw, 2005-07-15T16:38Z

Det viktigaste av allt, är att inte ge sig, så här skall det se ut:

```
<option <% if rst("Författare") = RS2("Namn") then %>
selected<% end if%>  value="<%= RS2("For_Id") %>">
<%= RS2("Namn") %></option>
```

Jag vill passa på och tacka er alla för att ni har försökt att hjälpa
mig med det här. :bire

Permalänk: https://www.webforum.nu/p/1646259

## #11 — Josef, 2005-07-15T16:57Z

Lite snyggare... Kanske?

```
Reponse.Write("<option ")
If rst("Författare") = RS2("Namn") Then
     Response.Write("selected ")
End If
Response.Write("value='" & RS2("For_Id") & "'>" & RS2("Namn") & "</option>")
```

Permalänk: https://www.webforum.nu/p/1646260

---

Tråden på webben: https://www.webforum.nu/amne/asp/131446-har-access-databas-ändrats
