怎样用SQL语句在ACCESS数据库中建新表?Public MyCon As New ADODB.Connection
Public MyRs As New ADODB.Recordset用的这种方法连的数据库请问该怎么做?谢谢

解决方案 »

  1.   

    Private Sub Form_Load()
    '菜单“工程”-->"引用"-->"Microsoft ActiveX Data Objects 2.7 Library"
    'Microsoft ADO Ext.2.7 for DDL ado Security
     Dim cat As ADOX.Catalog
     Set cat = New ADOX.Catalog
    cat.Create ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\newdata.mdb" + ";")
    MsgBox "数据库已经创建成功!"
    Dim tbl As ADOX.Table
    Set tbl = New ADOX.Table
    tbl.ParentCatalog = cat
    tbl.Name = "MyTable"'增加一个自动增长的字段
    Dim col As ADOX.Column
    Set col = New ADOX.Column
    col.ParentCatalog = cat
    col.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型
    col.Name = "id"
    col.Properties("Jet OLEDB:Allow Zero Length").Value = False
    col.Properties("AutoIncrement").Value = True
    tbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0'增加一个文本字段
    Dim col2 As ADOX.Column
    Set col2 = New ADOX.Column
    col2.ParentCatalog = cat
    col2.Name = "Description"
    col2.Properties("Jet OLEDB:Allow Zero Length").Value = False
    tbl.Columns.Append col2, ADOX.DataTypeEnum.adVarChar, 25'增加一个货币型字段
    Dim col4 As ADOX.Column
    Set col4 = New ADOX.Column
    col4.ParentCatalog = cat
    col4.Type = ADOX.DataTypeEnum.adCurrency
    col4.Name = "xx"
    tbl.Columns.Append col4, ADOX.DataTypeEnum.adCurrency'增加一个OLE字段
    Dim col5 As ADOX.Column
    Set col5 = New ADOX.Column
    col5.ParentCatalog = cat
    col5.Type = ADOX.DataTypeEnum.adLongVarBinary
    col5.Name = "OLD_FLD"
    tbl.Columns.Append col5, ADOX.DataTypeEnum.adLongVarBinary'增加一个数值型字段
    Dim col3 As ADOX.Column
    Set col3 = New ADOX.Column
    col3.ParentCatalog = cat
    col3.Type = ADOX.DataTypeEnum.adDouble
    col3.Name = "ll"
    tbl.Columns.Append col3, ADOX.DataTypeEnum.adDouble
    Dim p As ADOX.Property
    For Each p In col3.Properties
        Debug.Print p.Name & ":" & p.Value & ":" & p.Type & ":" & p.Attributes
    Next'设置主键
    tbl.Keys.Append "PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id", "", ""
    cat.Tables.Append tbl
    MsgBox "数据库表:" + tbl.Name + "已经创建成功!"
    Set tbl = Nothing
    Set cat = NothingDim adocon As ADODB.Connection
    Set adocon = New ADODB.Connection
    adocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\newdata.mdb;" & "Mode=Share Deny Read|Share Deny Write;Persist Security Info=False;Jet OLEDB:Database Password="
    Set cat = New ADOX.Catalog
    Set cat.ActiveConnection = adocon
    For i = 0 To cat.Tables.Count - 1
       Debug.Print cat.Tables(i).Name   '取出表名
       If cat.Tables(i).Name = "MyTable" Then
       For j = 0 To cat.Tables(i).Columns.Count - 1
          Debug.Print cat.Tables(i).Columns(j)    '取出列名
          Debug.Print cat.Tables(i).Columns(j).Type '取出数据类型
          For Each p In cat.Tables(i).Columns(j).Properties
          Debug.Print p.Type & p.Name & p.Attributes    '取出列的属性
          Next
       Next j
       
       End If
    Next icat.Tables.Item("MyTable").Columns("ll").Properties("Jet OLEDB:Allow Zero Length").Value = True '设置零长度正确
    'For i = 0 To cat.Tables.Count - 1                        '修改表名,暂不行,测试没通过
    '   If cat.Tables(i).Name = "MyTable" Then
    '    cat.Tables.Item(1).Name = "NewMyTable"
    '   End If
    'Next i
    Set cat = Nothing
    adocon.Close
    Set adocon = Nothing
    End Sub
      

  2.   

    MyCon.open
    MyCon.execute "Create Table 表名(字段...)"
      

  3.   

    建表
    Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp.mdb;Persist Security Info=False"
        cn.Open
        cn.Execute "CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double)"
        cn.Close
    End Sub
    '删表
    Private Sub Command2_Click()
        Dim cn As New ADODB.Connection
        cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp.mdb;Persist Security Info=False"
        cn.Open
        cn.Execute "DROP TABLE [aaa]"
        cn.Close
    End Sub