如何在vb代码中编写创建数据库及表的SQL代码及调用过程,能否帮小弟写一个例子,谢谢,还有就是在SQL语句中怎样用代码完成表结构中的关键字段设置及相关表关联操作,谢谢!!!
  如:
     表Table:字段数:a,b,c 
     创建表sql语句:
     CREATE TABLE [dbo].[Table] (
[a]  [char]  (15)  COLLATE Chinese_PRC_CI_AS NULL ,

[b] [char] (15)  COLLATE Chinese_PRC_CI_AS NULL ,
[c] [tinyint]   NULL 
     )
     请问:如何在VB程序中执行上面sql语句,谢谢!

解决方案 »

  1.   

    Public Function OpenDB(Rs As ADODB.Recordset, sDB$, sSQL$, Optional sUser$, Optional sPwd$, Optional sServer$) As Boolean
    '''''''''''''''使用此方法可以不建立DSN,直接使用Sql数据库,或ACCESS数据库
    On Error GoTo BBB
    'sSQL = "CREATE TABLE TableName(ID INT PRIMARY KEY,姓名 varchar(30),日期 DateTime,金额 money) "
    Dim Cn As New ADODB.Connection
    Set Rs = New ADODB.Recordset
    If sServer = "" Then
        Cn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & sDB & ";", sUser, sPwd
    Else
        Cn.Open "DRIVER={SQL Server};SERVER=" & sServer & ";DATABASE=" & sDB & ";", sUser, sPwd
    End If
    Rs.Open sSQL, Cn, adOpenStatic, adLockOptimistic
    OpenDB = True
    Set Cn = Nothing
    Exit Function
    BBB: 'MsgBox Err.Description
    End Function
      

  2.   

    用VB建立Access数据库结构 
    (录入日期:2001.07.07 阅读次数:3812) 转载不详  
    作者:不详 --------------------------------------------------------------------------------
     
    用VB建立Access数据库结构 
    Private Sub Command1_Click()On Error GoTo Err100注释:定义表与字段
    Dim DefDatabase As Database
    Dim DefTable As TableDef, DefField As FieldSet DefDatabase = Workspaces(0).OpenDatabase(App.Path & "\vbeden.mdb", 0, False)
    Set DefTable = DefDatabase.CreateTableDef("VB编程乐园")注释:dbBinary = 9
    注释:dbBoolean = 1
    注释:dbByte = 2
    注释:dbChar=18
    注释:dbDate=8
    注释:dbInteger=3
    注释:dbLong=4
    注释:dbMemo=12
    注释:dbText=10注释:建立Name字段为8个字符型
    Set DefField = DefTable.CreateField("Name", dbText, 8)
    DefTable.Fields.Append DefFieldSet DefField = DefTable.CreateField("Sex", dbText, 2)
    DefTable.Fields.Append DefField注释:该字段允许为空
    DefField.AllowZeroLength = True
    注释:建立Age字段为3个的常整型
    Set DefField = DefTable.CreateField("Age", dbInteger, 3)
    注释:字段追加
    DefTable.Fields.Append DefField注释:表追加
    DefDatabase.TableDefs.Append DefTableMsgBox " VB编程乐园数据库建立完成!", vbInformationExit SubErr100:
    MsgBox "对不起,不能建立表。请先再建表前建立VBEden数据库? ", vbCriticalEnd SubPrivate Sub cmdCreate_Click()On Error GoTo Err100注释:建立名为 VBEDEN 的数据库
    CreateDatabase "VB-CODE", dbLangGeneralMsgBox "数据库建立完成! ", vbInformationExit SubErr100:
    MsgBox "不能建立数据库! " & vbCrLf & vbCrLf & Err.Description, vbInformationEnd Sub 
     
      

  3.   

    楼上兄弟,我是在sql2k环境下,怎样用vb代码实现创建表的功能及设置相关表字段为主建,和相关表之间的索引,谢谢!
    急。。
      

  4.   

    把sql 语句用cnn.excute 执行不就行了吗? sql 语句就一串字符串呀!
      

  5.   

    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'增加一个数值型字段
    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 = Nothing
    End Sub