将 DAO 记录集添加到子例程 - vba
Adding a DAO Recordset to Subroutine - vba
我在 Access 2010 中使用 vba,我只是想将 DAO 记录集传递到子例程中。我这样做是为了不必重复代码(可能有数百行)。我相信这很简单,但每次我尝试它都会冻结程序,我被迫重新启动 Access 并重新添加我的代码。以下是我尝试过的所有代码:
Sub WriteToForms(rs as RecordSet) ' When I press enter, that is when it freezes
Sub WriteToForms(ByVal rs as RecordSet) ' When I press enter, that is when it freezes
Sub WriteToForms(ByRef rs as RecordSet) 'When I press enter, that is when it freezes
但是,当我这样做时:
Sub WriteToForms (types as string)
有效。我看过多篇文章,上面的代码是他们建议的。
将记录集传递给 Access 中的子例程时,必须指定记录集的类型。例如:
Sub WriteToForms(rs as recordset)
实际上应该是:
Sub WriteToForms(rs as Dao.RecordSet) 'If you are dealing with a DAO recordset.
或
Sub WriteToForms(rs as ADODB.RecordSet) 'If you are dealing with a ADO recordset.
未能指定记录集类型将导致程序冻结,您将需要重新启动Access/Excel。
我在 Access 2010 中使用 vba,我只是想将 DAO 记录集传递到子例程中。我这样做是为了不必重复代码(可能有数百行)。我相信这很简单,但每次我尝试它都会冻结程序,我被迫重新启动 Access 并重新添加我的代码。以下是我尝试过的所有代码:
Sub WriteToForms(rs as RecordSet) ' When I press enter, that is when it freezes
Sub WriteToForms(ByVal rs as RecordSet) ' When I press enter, that is when it freezes
Sub WriteToForms(ByRef rs as RecordSet) 'When I press enter, that is when it freezes
但是,当我这样做时:
Sub WriteToForms (types as string)
有效。我看过多篇文章,上面的代码是他们建议的。
将记录集传递给 Access 中的子例程时,必须指定记录集的类型。例如:
Sub WriteToForms(rs as recordset)
实际上应该是:
Sub WriteToForms(rs as Dao.RecordSet) 'If you are dealing with a DAO recordset.
或
Sub WriteToForms(rs as ADODB.RecordSet) 'If you are dealing with a ADO recordset.
未能指定记录集类型将导致程序冻结,您将需要重新启动Access/Excel。