怎样用VB代码完成创建数据库及相关表结构----急!

xianghui_yang 2004-10-31 08:39:04
如何在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语句,谢谢!
...全文
625 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SAMKIT 2005-07-18
用command对象执行建表sql语句
回复
taosihai1only 2005-07-18
總有master數據庫吧
回复
myhgyp 2005-07-18
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
回复
byhum 2005-07-17
没有数据库,没有数据库连什么呀,没有数据库登录什么,怎么登录呀,除非你是要另建立一个数据库
回复
henry520 2005-07-15
楼主问题解决了吗?教我一下呀
回复
xianghui_yang 2004-11-01
谢谢了:)
回复
andyfr1210 2004-11-01
把sql 语句用cnn.excute 执行不就行了吗? sql 语句就一串字符串呀!
回复
xianghui_yang 2004-10-31
楼上兄弟,我是在sql2k环境下,怎样用vb代码实现创建表的功能及设置相关表字段为主建,和相关表之间的索引,谢谢!
急。。。。。。。。。。。。。。。。。
回复
daisy8675 2004-10-31
用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 Field

Set 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 DefField

Set 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 DefTable

MsgBox " VB编程乐园数据库建立完成!", vbInformation

Exit Sub

Err100:
MsgBox "对不起,不能建立表。请先再建表前建立VBEden数据库? ", vbCritical

End Sub

Private Sub cmdCreate_Click()

On Error GoTo Err100

注释:建立名为 VBEDEN 的数据库
CreateDatabase "VB-CODE", dbLangGeneral

MsgBox "数据库建立完成! ", vbInformation

Exit Sub

Err100:
MsgBox "不能建立数据库! " & vbCrLf & vbCrLf & Err.Description, vbInformation

End Sub

回复
zhoyiho 2004-10-31
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
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告