access中如何使用VBA将已有的recordset生成一个新表 10
我在子窗体中用数据表的形式列出了一组数据,希望用VBA把这组数据生成一个新表。自然的思路是以下几种方法:能否用某一命令或函数,将子窗体直接生成为表,就像生成表查询那样?子...
我在子窗体中用数据表的形式列出了一组数据,希望用VBA把这组数据生成一个新表。自然的思路是以下几种方法:
能否用某一命令或函数,将子窗体直接生成为表,就像生成表查询那样?
子窗体的recordset容易得到,能否用recordset对象的某一函数,直接把该recordset导出为一个新表?
现在我可以用VBA新建表,然后用循环语句把recordset的每一条记录保存到表中,但这种方式效率低不太想用。
以上1,2任何一种方式都可以,求高手解答。 展开
能否用某一命令或函数,将子窗体直接生成为表,就像生成表查询那样?
子窗体的recordset容易得到,能否用recordset对象的某一函数,直接把该recordset导出为一个新表?
现在我可以用VBA新建表,然后用循环语句把recordset的每一条记录保存到表中,但这种方式效率低不太想用。
以上1,2任何一种方式都可以,求高手解答。 展开
1个回答
展开全部
把下面的过程放到任何一个模块中
Public Sub CreateTabel(rst As DAO.Recordset, TabelName As String)
Dim TS As TableDefs
Dim T As TableDef
Dim F As DAO.Field
Set TS = CurrentDb.TableDefs
Set T = New TableDef
rst.MoveFirst
For Each F In rst.Fields
T.Fields.Append T.CreateField(F.Name, F.Type, F.Size)
Next
T.Name = TabelName
TS.Append T
Set TS = Nothing
Set T = Nothing
Set F = Nothing
End Sub
具体的调用方式就是
CreateTabel recorset对象,表名
就可以在当前数据库中生成一个新表了
结构和recorset相同但没有数据,如果你要复制数据,一行SQL就搞定了
Public Sub CreateTabel(rst As DAO.Recordset, TabelName As String)
Dim TS As TableDefs
Dim T As TableDef
Dim F As DAO.Field
Set TS = CurrentDb.TableDefs
Set T = New TableDef
rst.MoveFirst
For Each F In rst.Fields
T.Fields.Append T.CreateField(F.Name, F.Type, F.Size)
Next
T.Name = TabelName
TS.Append T
Set TS = Nothing
Set T = Nothing
Set F = Nothing
End Sub
具体的调用方式就是
CreateTabel recorset对象,表名
就可以在当前数据库中生成一个新表了
结构和recorset相同但没有数据,如果你要复制数据,一行SQL就搞定了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询