[AccessD] File Sharing lock count exceeded

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>


More information about the AccessD mailing list