jim at therareshop.com
jim at therareshop.com
Wed Oct 29 12:13:28 CDT 2008
yup, like this- Function FindPeriod() Dim dbs As Database Dim rstbase As Recordset Dim strTable As String strTable = "tblPeriods" Set dbs = WhichDB(strTable) Set rstbase = dbs.OpenRecordset(strTable, dbOpenTable) 'find record with current period rstbase.Index = "fldStatus" rstbase.Seek "=", "B" intPeriodNo = rstbase.Fields("fldPeriodno") intMonth = rstbase.Fields("fldMonth") intyear = rstbase.Fields("fld year") rstbase.Close Set rstbase = Nothing End Function So you pas the name of any table in the target db and then use the standard db.OpenRecordset on the table you want to 'Seek'? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jim at therareshop.com Sent: Wednesday, October 29, 2008 9:19 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Which Is Faster - DAO or db.Execute? <The table is a linked table - so no Seek.> Rocky, Using the function below allows you to perform a seek on a linked table. This is a nifty function from the microsoft website that I've been using for years without a problem. Set db = WhichDB(strTable) Function WhichDB(strTableName As String) As Database Dim dbpath$, SourceTable$, dbTest As Database On Error GoTo whichDB_ERR Set dbTest = DBEngine(0)(0) dbpath = Mid(dbTest(strTableName).Connect, InStr(1, dbTest(strTableName).Connect, "=") + 1) If dbpath = "" Then Set dbTest = CurrentDb() Else Set dbTest = DBEngine(0).OpenDatabase(dbpath) End If Set WhichDB = dbTest whichDB_EXIT: Exit Function whichDB_ERR: MsgBox Err.Description Resume whichDB_EXIT End Function