[AccessD] Access crashes when assigning empty recordset
Charlotte Foust
charlotte.foust at gmail.com
Tue Sep 11 20:13:57 CDT 2018
I suppose it might be possible that setting the frm.recordset to nothing
leaves you in a state where you cannot assign a recordset to it. What
happens if you comment out that line? Does it give you the same error or a
different one? And what is the error? Honestly, I can't recall every
trying to set a subform's recordset.
Charlotte Foust
(916) 206-4336
On Tue, Sep 11, 2018 at 12:56 PM Fred Hooper <fahooper at gmail.com> wrote:
> I'm debugging an A2003 front end to a SQL Server 2017 back end. All data
> sourcing is though stored procedures, using ADO; all associated code is
> centralized. I'm filling a subform; which of two subforms is filled
> depends on a value in the parent form. The unused subform is disabled
> and hidden.
>
> * As I move through the records of the parent form the subforms fill
> correctly.
> * When I add a new record of each type, both work correctly.
> * When I attempt to change the type for a record the crash occurs.
> o The code to do so is the same code as the first two items above
> o Here are the steps:
> + Create the recordset -- works properly
> + Code that assigns the recordset:
>
> frm.RecordSource = ""
> Set frm.Recordset = Nothing
> If rst.State = adStateOpen Then
> Set frm.Recordset = rst -- it crashes here!
> rst.CLOSE
> End If
> Set rst = Nothing
>
> + These disconnected recordsets work perfectly everywhere (so
> far) except for this; if they are created with optimistic
> locking they are editable and can be appended to, if read
> only they are that. All use a client side cursor and are
> loaded forward only -- but navigable in the forms.
> + It is crashing only on loading an empty recordset, but with
> anything except switching the value in the parent form empty
> recordsets load without issue. The changing value in the
> parent form isn't referenced anywhere in the loading code;
> it just affects which code is executed.
> + In looking at the recordset at the crash point it has (1)
> zero records; (2) EOF = True; and, (3) BOF = True -- all the
> expected values.
> + An identical empty recordset in the master record created
> with the value I'm changing to has records added without any
> problems.
> * In writing this I realized that I can write a stored procedure to
> make the change in the database and reload the form. I'm confident
> that will work, but it seems kludgy.
>
> Any ideas?
>
> TIA,
> Fred
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
More information about the AccessD
mailing list