Dim cat As New ADOX.Catalog
    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim tbl As New Table
    Dim s As String
    Dim snow() As String, i As Long, n As Long
    n = 2 'DataGrid1的记录数
    ReDim snow(n, 1)
    For i = 0 To n
      DataGrid1.Row = i
      snow(i, 0) = DataGrid1.Columns(0).value '得到第一列值
        'snow(i, 1) = DataGrid1.Columns(1).Value '得到第二列值,假设为字段类型
        tbl.Columns.Append snow(i, 0), adVarWChar, 50 '循环建表的字段,默认为字符型
    Next i    MsgBox "你确定建立这种样式的表么?"
    s = InputBox("请输入建表的表名:", "建表提示")
    If s = "" Then Exit Sub
    cat.ActiveConnection = pstr
    tbl.Name = s '表的名称
    tbl.Columns.Append "警号", adInteger '表的第一个字段
    tbl.Columns.Append "姓名", adVarWChar, 8 '表的第二个字段
    tbl.Columns.Append "应发工资", adVarWChar, 50 '表的第一个字段
    tbl.Columns.Append "实发工资", adVarWChar, 8 '表的第二个字段
    tbl.Columns.Append "职务", adVarWChar, 50 '表的第三个字段
    tbl.Columns.Append "工作类型", adVarWChar, 50 '表的第一个字段
    tbl.Columns.Append "级别", adVarWChar, 8 '表的第二个字段
    tbl.Columns.Append "警衔", adVarWChar, 50 '表的第三个字段
    tbl.Columns.Append "地方补贴", adVarWChar, 50 '表的第一个字段
    tbl.Columns.Append "其他", adVarWChar, 50 '表的第二个字段
    cat.Tables.Append tbl '建立数据表
    conn.Open pstr
    rs.CursorLocation = adUseClient
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
    MsgBox "建表 " & s & " 成功!", 64, "提示"cat.Tables.Append tbl '建立数据表
这里报错 说列id 无效

解决方案 »

  1.   

    你断点debug这一段看看
        For i = 0 To n
          DataGrid1.Row = i
          snow(i, 0) = DataGrid1.Columns(0).value '得到第一列值
            'snow(i, 1) = DataGrid1.Columns(1).Value '得到第二列值,假设为字段类型
            tbl.Columns.Append snow(i, 0), adVarWChar, 50 '循环建表的字段,默认为字符型
        Next i 
      

  2.   

    你的代码错误太多,加个for循环做什么,后面已经是建表代码了,看不明白你的逻辑
      

  3.   

    copy别人的程序没有问题,问题是你自己得先看懂三分才开始用啊!