我在子窗体中用数据表的形式列出了一组数据,希望用VBA把这组数据生成一个新表

自然的思路是以下几种方法: 能否用某一命令或函数,将子窗体直接生成为表,就像生成表查询那样? 子窗体的recordset容易得到,能否用recordset对象的某一函数,直接把该recordset导出为一个新表? 现在我可以用VBA新建表,然后用循环语句把recordset的每一条记录保存到表中,但这种方式效率低不太想用。 以上1,2任何一种方式都可以,求高手解答。

一只斗牛犬
浏览 118回答 1
1回答

不负相思意

把下面的过程放到任何一个模块中PublicSubCreateTabel(rstAsDAO.Recordset,TabelNameAsString)DimTSAsTableDefsDimTAsTableDefDimFAsDAO.FieldSetTS=CurrentDb.TableDefsSetT=NewTableDefrst.MoveFirstForEachFInrst.FieldsT.Fields.AppendT.CreateField(F.Name,F.Type,F.Size)NextT.Name=TabelNameTS.AppendTSetTS=NothingSetT=NothingSetF=NothingEndSub具体的调用方式就是CreateTabel recorset对象,表名就可以在当前数据库中生成一个新表了结构和recorset相同但没有数据,如果你要复制数据,一行SQL就搞定了
打开App,查看更多内容
随时随地看视频慕课网APP