We help IT Professionals succeed at work.

run time error 7951 "You entered an expression that has an invalid reference to the recordset clone property

mlcktmguy
mlcktmguy asked
on
I am getting run time error 7951 "You entered an expression that has an invalid reference to the recordset clone property., on this statement

gBogusLong1 = Me.RecordsetClone.RecordCount  whic is part of this code block

Private Sub Form_Current()
  
If Me.NewRecord Then        'should never be a new record on this form
Else
    gBogusLong1 = Me.RecordsetClone.RecordCount
    '
    If Me.RecordsetClone.RecordCount > 0 Then  'only do this if records exists.
        'clone
        ' Set up globals for the current tax record, different id's are on it.
        '
        gCurrGRBID = Nz(Me.GRBID, 0)
        '
    End If
    '
End If
'

End Sub

Open in new window


I copied this code block from another Access 2013 application, where it works with no issues. .

The purpose of the code is to save off the ID of the first record on the continuous screen after a requery but only if there is a record.  If the returned recordset has no records I want to bypass the setting of the ID.

Any ides why I am getting this error in this application but not the other.  Or, Is there a better way to accomplish what I am trying to do?


If I try to type the command in using the intellisense there definitely in no 'Recordcount' option available.
Comment
Watch Question

Software Tead Lead / Business Analyst / System Analyst / Data Engineer
CERTIFIED EXPERT
Commented:
I am getting run time error 7951 "You entered an expression that has an invalid reference to the recordset clone property., on this statement

try verify the form's Record Source property and make sure it's linked to a Table/View?

Untitled.jpg
CERTIFIED EXPERT
Most Valuable Expert 2015
Distinguished Expert 2018

Commented:

Try to be more explicit. At least it may pin down the source of the error:


Private Sub Form_Current()

    Dim Records As DAO.Recordset

    If Not Me.NewRecord Then
        Set Records = Me.RecordsetClone
        gBogusLong1 = Records.RecordCount
       
        If gBogusLong1 > 0 Then  'only do this if records exists.
            'clone
            ' Set up globals for the current tax record, different id's are on it.
            '
            gCurrGRBID = Nz(Me.GRBID, 0)
            '
        End If
       
    End If

End Sub
 

 
Fabrice LambertConsulting
CERTIFIED EXPERT
Distinguished Expert 2017

Commented:

The RecordsetClone return a reference to a new recordset each time it is called.

Try saving the reference first:

Dim Clone As DAO.Recordset
Set Clone = Me.RecordsetClone
    '// other code.

Author

Commented:
Thanks Ryan.  Pure oversight on my part.