Jim Dettman
jimdettman at earthlink.net
Thu Oct 9 16:03:00 CDT 2003
Rocky,
<<Any hints?>>
The database(s) are all on a station or split between a client and server?
Besides that, don't use SQL statements when opening the tables, just open
them directly.
Set rstTaxRate = db.OpenRecordset("tblTaxRates")
Set rstRecoveryTable = db.OpenRecordset("tblPrintRecoveryForm")
JET's trying to use an implicit transaction to handle the update because
of that.
Jim Dettman
President,
Online Computer Services of WNY, Inc.
(315) 699-3443
jimdettman at earthlink.net
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Rocky Smolin -
Beach Access Software
Sent: Thursday, October 09, 2003 12:45 PM
To: AccessD at databaseadvisors.com
Subject: [AccessD] File Sharing lock count exceeded
Dear List:
I am getting an error in a loop which says:
File sharing lock count exceeded. Increase MaxLocksPerFile registry
entry.
I don't think that's the solution. The lock limit should not be exceeded.
Somehow I'm not releasing the locks as they're being created. Is there a
trick to doing that? It blows at different counts, too. Sometimes over
70,000 records get processed, sometimes 40,000.
Here's the code:
'***************************************************************************
*****
Set rstTaxRate = db.OpenRecordset("Select * FROM tblTaxRates")
Set rstRecoveryTable = db.OpenRecordset("Select * FROM
tblPrintRecoveryForm")
With rstRecoveryTable
If .BOF = True And .EOF = True Then GoTo GoodBye:
.MoveLast
txtTotalRecords = .RecordCount
.MoveFirst
lngCount = 0
Do While Not .EOF
lngCount = lngCount + 1
If lngCount Mod 1000 = 0 Then
txtRecordNumber = lngCount
Me.Repaint
End If
.Edit
If Nz(!fldInvoiceDetailPriceShouldBe) = 0 Then
!PriceError = 0
!TotalDue = 0
End If
If Nz(!fldInvoiceDetailPricePaid) < 0 Then
!PriceError = !fldInvoiceDetailPricePaid
!TotalDue = !PriceError * !fldInvoiceDetailQuantity
End If
If !fldInvoiceDetailSalesTax = "Y" Then
' find tax rate for this invoice date; if not found, tax is zero
rstTaxRate.FindFirst "fldTaxRateStartDate <= #" & !fldInvoiceDate
_
& "# AND fldTaxRateEndDate >= #" & !fldInvoiceDate & "#"
If rstTaxRate.NoMatch = False Then
!SalesTax = !PriceError * rstTaxRate!fldTaxRate
!TotalDue = (!PriceError + !SalesTax) *
!fldInvoiceDetailQuantity
End If
End If
.Update
.MoveNext
Loop
End With
'*************************************************************************
Any hints?
MTIA,
Rocky Smolin
Beach Access Software
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20031009/e575a60d/attachment-0001.html>