Locates a record and copies it to a buffer.



Function FindRec(ByVal hTable As Long, ByVal hRec As Long, ByVal SearchMethod As String) As Boolean

The handle to the table.

As input: The record from which the search will begin.

As output: The record that is found. Any FlowFields associated with the record are set to zero; use CalcFields to update these fields.

A string with one or more of these operators:


finds the record equal to hRec.


finds a record less than hRec.


finds a record greater than hRec.


finds the first record in the table.


finds the last record in the table.

empty string

means the same as =.

An operator can only occur once. The operators + and - must be used alone.

If SearchMethod contains any of the operators =, > or < values must be assigned to all fields of the current key and the primary key in hRec before making this call.



 ' Case "FindRec", AllocRec and NextRec

 ' Open Table 15 (G/Ledger)

  CF1.OpenTable hTable, 15

  hRecord = CF1.AllocRec(hTable)


  ' get last record

  tmpVar = CF1.FindRec(hTable, hRecord, "+")

  If VarType(tmpVar) = vbBoolean Then

  logWr "FindRec OK"


  logWr "FindRec failed. It didn't return a boolean"

  End If

  tmpLastRecord = CF1.GetFieldData(hTable, hRecord, 1)


  ' loop through records

  CF1.FindRec hTable, hRecord, "-"

  tmpLong2 = 1 'used to count no of records

  tmpLong = CF1.GetFieldData(hTable, hRecord, 1)

  Do While tmpLong <> tmpLastRecord

  tmpVar = CF1.NextRec(hTable, hRecord, 1)

  If VarType(tmpVar) <> vbInteger Then

  logWr "NextRec failed. It didn't return an Integer"

  End If

  tmpLong = CF1.GetFieldData(hTable, hRecord, 1)

  tmpLong2 = tmpLong2 + 1


  logWr "Stepped through " & Trim$(Str$(tmpLong2)) & " records. Data from the last one: " + Str$(tmpLastRecord)


  CF1.FreeRec hRecord


FindRec retrieves the first record that meets the criteria set by SearchMethod and the scope of any filters associated with the table handle (set by SetFilter or SetRange). The order in which records are scanned is determined by the current key of the table handle (set by SetCurrentKey).

The search starts from the values in the current key fields in hRec. If the current key is not the primary key, there is a chance that several records will have the same values in their current key fields. If this is the case, the values in the primary key fields of hRec are also used in the search.

If the record is found, the function returns TRUE. If the record is not found in the table, two things can happen:

For more information about how errors are handled, see Error Handling.

© 2009 Microsoft Corporation. All rights reserved.