webForumDet fria alternativet

Access 2007: "search key was not found in any record" vid update av memofält

Databaser & SQL

4 svar · 625 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Nu gör jag något fel igen. :(

GET ALL MOVIE FILES...
sql = "SELECT file_id FROM T_movie_files "
response.write("<li> " &sql)
set rs = objConn.execute(sql)
'arrRecords = rs.GetRows()
varSeparator = ","
varIfNullCharacter = ""
varCommaString = rs.GetString(, , varSeparator, varSeparator, varIfNullCharacter)

'varCommaString = "2,56,23,14"

sql = "UPDATE T_playlist SET playlist_movie_files_id = '" &varCommaString &"'" WHERE playlist_id = 6" 
response.write "<hr><b>Uppdaterar vald fil :</b> " &sql &"<hr>"
'response.write "<li><b>Uppdaterar vald film :</b> "
objConn.execute(sql)

Första gången jag kör frågan så fungerar det. Efter första gången så får jag följande felmeddelande.

Microsoft JET Database Engine error '80004005'

The search key was not found in any record.

/_admin/editSystemPlaylists/editSysPlaylist.asp, line 41

varCommaString består av "1,3,4,7... till ca 500"

Vad kan detta vara. Om jag skapar en kort variant av varCommaString så fungerar det alltid. :bla

:stud

Medlem sedan juni 200032 967 inlägg
#2

Hmm, du borde få ett ASP-felmeddelande av det där - räkna antalet citationstecken...

sql = "UPDATE T_playlist SET playlist_movie_files_id = '" & varCommaString & "' WHERE playlist_id = 6"

Det verkar dock som att din datamodell suger, men det är en annan historia. (Man ska icke lagra flera värden i ett fält!)

Edit: det var lite nattmössa där ett tag... :o

Medlem sedan dec. 20051 056 inlägg
#3

Got you :)

I detta fall vill jag trots ditt tips experimentera med att ha en kommaseparerad sträng som playlist. Får jag det att fungera så blir det väldigt enkelt för ändamålet.

Det som jag tycker är skummt är att Insert fungerer hur bra som helst men inte update.

sql = "INSERT INTO T_playlist (playlist_movie_files_id) VALUES ('" &varCommaString &"')"
objConn.execute(sql)

Hur förklarar man det?

EDIT:
Hittade följande:

The search key was not found in any record.
Microsoft JET Database Engine (0x80004005)
The search key was not found in any record.
This error often means that the database has become corrupted.

The solution to this is to repair the database. If the database is on a remote server download the database and follow the instructions below to repair the database.

Access 2000, XP, and 2003 Compact and Repair Database
Open the database in Microsoft Access, click on the 'Tools' menu and select 'Database Utilities -> Compact and Repair Database'.

Access 2007 Compact and Repair Database
Open the database in Microsoft Access, click on the 'Office Button' in the top left corner then select 'Manage -> Compact and Repair Database'.

ska se om det kan vara något fel på access filen.

EDIT2:

Byter jag ut mdb filen mot en ny så fungerer det att köra update en gång. Sedan går filen sönder igen. Irriterande. Får nog tänka om antar jag... :x

Medlem sedan dec. 20051 056 inlägg
#4

Yeeesss... trial n error lönar sig ibland. Det visar sig att när jag går in i access 2007 filen och öppnar "T_playlist" > "design view" > "General fliken" och ändrar "Indexed" från "Yes duplicates ok" till "no" så fungerar alla mina update frågor.

The search key was not found in any record.
Microsoft JET Database Engine (0x80004005)

Kan alltså ha med indexeringen att göra. Hoppas att någon annan får hjälp av detta. :)

Tack @nders för hjälpen.

Medlem sedan juni 200032 967 inlägg
#5

... med den lösningen passar vi såklart på att flytta tråden från SQL också. :)

mvh

445 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
310 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)