'需要DAO 3.51 /3.6 支持
'假设表一20个字段,表二15个字段
Dim dbSet As Database
Dim tdf1 As TableDef
Dim tdf2 As TableDef
Dim fld1( 1 to 20) As Field
Dim fld2( 1 to 15) As FieldSet dbSet = CreateDatabase(App.Path + "\DB.mdb",dbLangChineseSimple)
set tdf1=dbset.CreateTableDef("表1")
set tdf2=dbset.CreateTableDef("表2")With tdf1
    set fld1(1)=tdf1.createField("姓名",vbDBText,16) '定义好字段
    tdf1.Fields.Add Fld1(1)
    ....
建好所有字段
    set fld2(15)=...
    tdf2.Fields.Add Fld2(15)   Dbset.TabelDefs.Add tdf1
   Dbset.TabelDefs.Add tdf2可以了    

解决方案 »

  1.   

    我的意思你好象理解错了,我的要求就是把已经有记录的一个表中的记录4做为新建表的记录。而且这些记录要求是也说不上来应该是这样写吧
    ors1.open select * from 车间名称,,..  '我的表名就是车间名称,取出里面的所有车间
    再将这个车间名称做为新建表的名字为  ors1("车间名称")&"每日数据"
    ors2.open select * from 工序清单 '
    ors2("工序名称")做为新建表的字段。
    你说的应该是可以的,但是我也是这样做的老是出错。你能不能说详细点!谢谢
      

  2.   

       Dim mDB As Database
        Dim mRSOne As Recordset
        Dim mRSTwo As Recordset
        Dim mField As Field
        Dim mTabDef As TableDef
        Set mDB = OpenDatabase("e:\test.mdb")
        Set mRSOne = mDB.OpenRecordset("车间")
        While Not mRSOne.EOF
            Set mRSTwo = mDB.OpenRecordset("Select * From [工序] Where [sID]=" & mRSOne.Fields(0))
            If mRSTwo.RecordCount <> 0 Then '如果车间没有相应的工序
            Set mTabDef = mDB.CreateTableDef(mRSOne.Fields(1))
                While Not mRSTwo.EOF
                    Set mField = mTabDef.CreateField(mRSTwo.Fields("GONGSHU"), dbText, 10) '10为字段大小,可自己设计
                    mTabDef.Fields.Append mField
                    mRSTwo.MoveNext
                Wend
                Set mField = mTabDef.CreateField("日期", dbDate)
                mTabDef.Fields.Append mField
                Set mField = mTabDef.CreateField("员工姓名", dbText, 10)
                mTabDef.Fields.Append mField
                Set mField = mTabDef.CreateField("当日基本工资", dbInteger, 3)
                mTabDef.Fields.Append mField
                mDB.TableDefs.Append mTabDef
            End If
            mRSOne.MoveNext
        Wend
        On Error Resume Next
        mRSTwo.Close
        Set mRSTwo = Nothing
        mRSOne.Close
        Set mRSOne = Nothing
        mDB.Close
        Set mDB = Nothing