access中如何使用VBA将已有的recordset生成一个新表

把下面的过程放到任何一个模块中

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就搞定了