Jim Dettman
jimdettman at verizon.net
Wed May 23 14:45:14 CDT 2012
rstRS.FindFirst "[EmployeeTimesID] = " & strKey Should be: rstRS.FindFirst "[EmployeeTimesID] = " & chr$(34) & strKey & chr$(34) The key format should be whatever you expect to find in EmployeeTimesID Also on this: Set dbsDB = DBEngine(0)(0) 'Set db = CurrentDb - Can substitue for above line but slower and will not handle linked files. You might want to give this a gander: CurrentDB() vs. dbEngine.Workspaces(0).Databases(0) and an alternative http://rdsrc.us/magJ9c And on the comment of not being able to handle linked tables, I think what was meant that you can't open a linked table as a type table (you can open it if you use a dynaset though fine). Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dale Kalsow Sent: Wednesday, May 23, 2012 03:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FindFirst Error No matter what I try I still get an error on the findfirst command the second time around. I get an error if the # are there or if they are not. I have even taken the slashes out of the date, but it has not helped. Here is the current format of the key: 5212012HeatherHanson Here is the current code: Set dbsDB = DBEngine(0)(0) 'Set db = CurrentDb - Can substitue for above line but slower and will not handle linked files. ' Open database Set rstRS = dbsDB.OpenRecordset("tblEmployeeTimes", dbOpenDynaset) Set rstRsNew = dbsDB.OpenRecordset("qryKeyCardImport", dbOpenDynaset) rstRsNew.MoveFirst Do While Not rstRsNew.EOF strKey = Replace(Format(rstRsNew![Time], "Short Date"), "/", "") & Replace(Trim(rstRsNew![Employee]), " ", "") rstRS.FindFirst "[EmployeeTimesID] = " & strKey If Not rstRS.NoMatch Then With rstRS .Edit rstRS![EmployeeTimesOut] = Format(rstRsNew![Time], "Medium Time") .Update End With Else With rstRS .AddNew rstRS![EmployeeTimesID] = strKey rstRS![EmployeeTimesDate] = DateValue(rstRsNew![Time]) rstRS![EmployeeTimesName] = Trim(rstRsNew![Employee]) rstRS![EmployeeTimesIn] = TimeValue(rstRsNew![Time]) .Update End With End If rstRsNew.MoveNext Loop varTmp = SysCmd(acSysCmdClearStatus) MsgBox "The EmployeeTimes file has been updated", vbOKOnly + vbInformation, "Parts Master" rstRS.Close rstRsNew.Close dbsDB.Close Set rstRS = Nothing Set rstRsNew = Nothing Set dbsDB = Nothing ________________________________ From: Gustav Brock <gustav at cactus.dk> To: accessd at databaseadvisors.com Sent: Wednesday, May 23, 2012 1:57 PM Subject: Re: [AccessD] FindFirst Error Ouch, dates as strings ... Still, this has to be corrected: rstRS![[EmployeeTimesName]] /gustav >>> dkalsow at yahoo.com 23-05-12 20:30 >>> The entire field is defined as a string in the table. Also, the first time around (when the table is empty) the first record is created without an error. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com