---
title: "Access 2000 FileSharingLock"
type: "forum-thread"
url: "https://www.webforum.nu/amne/kontorsprogram/23369-access-2000-filesharinglock"
topic: "Kontorsprogram"
topic_url: "https://www.webforum.nu/amne/kontorsprogram"
author: "behm"
published: "2001-11-15T09:02:00.000Z"
updated: "2001-11-15T12:33:00.000Z"
replies: 3
views: 301
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/kontorsprogram/23369-access-2000-filesharinglock"
---

# Access 2000 FileSharingLock

## #1 — behm, 2001-11-15T09:02Z

Har Access 2000 & Win 98 (version 2).

När jag i ett recordset öppnar en tabell innehållande cirka 300000 poster där en post i taget uppdateras för att sedan läsas tillbaka får jag efter att ha gått igenom 9495 poster följande felmeddelande:
"File Sharing Lock Count exceeded"
"Increase MaxLocksPerFile registry entry."
I Regedit är MaxLocksPerFile satt till 9500, men det ska väl inte inverka då posterna återläses innan nästa läses in?
Kod följer nedan:

Option Compare Database
Option Explicit

Public MoveRs As Recordset
Public MoveSql As String

Public Sub X_CalculateCrossingTime()
On Error GoTo Err_X_CalculateCrossingTime

MoveSql = "SELECT TblClientPlaceMoves.Distance, TblClientPlaceMoves.CrossingTime FROM TblClientPlaceMoves;"
    
Set MoveRs = CurrentDb.OpenRecordset(MoveSql)
With MoveRs
.MoveFirst
Do Until .EOF
   .Edit
   !CrossingTime = 10
   .Update
   .MoveNext
Loop
.Close
End With

Exit_X_CalculateCrossingTime:
    Exit Sub
Err_X_CalculateCrossingTime:
    MsgBox Err.Description
    Resume Exit_X_CalculateCrossingTime
End Sub

/E Behm

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

## #2 — LarsG, 2001-11-15T11:37Z

Det är bättre att använda en update-sats direkt. Då slipper du att loopa ockå.

\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
MoveSql = "update TblClientPlaceMoves set crossingTime = 10"

och sedan gör man execute. (Nu vet jag inte hur det ser ut i den miöjö du har. Är det DAO du använder?)

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

## #3 — behm, 2001-11-15T12:06Z

Hej
Jag glömde lägga till att jag gör tilldelningen av 10 bara för att testa koden i övrigt. Jag kommer att göra mer beräkningar men dessa är ännu ej inlagda.

Jag kör med:
Visual Basic for Applications
Microsoft Access 9.0 object library,
OLE automation,
Utility, 
Microsoft DAO 3.6 object library,
Microsoft Visual Basic for Applications Extensibility 5.3

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

## #4 — LarsG, 2001-11-15T12:33Z

Det går att lägga in beräkningar i sql-satsen också.

Du kan också referera befintliga värden

\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
update t set c1 = c1 + 10, c2 = c3+3,
c3 = iif(c3 = 1, 10,20)

den sista innebär att beroende på det befintliga värdet i kolumn så gör man olika uppdateringar, så jag tror nog att det går att åstadkomma med hjälp av SQL.

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

---

Tråden på webben: https://www.webforum.nu/amne/kontorsprogram/23369-access-2000-filesharinglock
