怎样在VB里创建数据库和表

therock1 2004-12-26 07:45:06
好像不能直接把SQL里的创建语句直接套进来,请前辈们指点.最好有例子.傻根在这里先谢了.
...全文
156 点赞 收藏 8
写回复
8 条回复
vbman2003 2004年12月27日
一、SQL数据库,用ADO连接对象(cn)连接到SLQ中的master数据库,用cn.Execute方法执行下面的SQL语言即可:
  创建一个名为Try的数据库:
  CREATE DATABASE Try
  ON
 PRIMARY
 (NAME=Try_data,
 FILENAME='d:\data\Try.mdf',
 SIZE=30M,
 MAXSIZE=70M,
 FILEGROWTH=15%)
  LOG ON
 (NAME=Try_log,
 FILENAME='d:\data\Try.ldf',
 SIZE=2M,
 MAXSIZE=10M,
 FILEGROWTH=1M)

  创建了一个名为Try_info的表:
  CREATE TABLE Try_info
  (
  user_name varchar(10) NOT NULL,
  age int,
  RMB money
  )

二、Access数据库,麻烦一点:
  '----------------------------------------------------
'引用 Microsoft ADO Ext. 2.7 for DDL and Security
'----------------------------------------------------

Option Explicit

'以下代码通过 Create 方法创建新的 Jet 数据库。
Sub CreateDatabase(dbName As String)
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\" & dbName & ".mdb"
End Sub

Private Sub Command1_Click()
Dim cat As ADOX.Catalog
Dim tb As Table
Dim str As String

str = "newDB" '指定数据库名称
Call CreateDatabase(str) '创建数据库

'以下代码创建新数据库中的表 tb
Set cat = New ADOX.Catalog
cat.ActiveConnection = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\" & str & ".mdb"
Set tb = New Table
tb.Name = "tb_info"
tb.Columns.Append "id", adInteger
tb.Columns.Append "iName", adVarWChar, 50
tb.Columns.Append "iCode", adInteger
cat.Tables.Append tb
Set tb = Nothing
Set cat = Nothing
End Sub
回复 点赞
therock1 2004年12月26日
多谢前辈们了,小弟在此谢跪了.
回复 点赞
ygrobin 2004年12月26日
楼上都说过了,就不重复了
回复 点赞
yufoshou 2004年12月26日
老大,我很久没来了,现在如何发贴子呀?在下等,请各位哥哥姐姐告诉我。谢谢!
回复 点赞
mumuyh 2004年12月26日
先定义一个database类型的变量mydb,并且通过createdatabase函数创建一个新的数据库,然后通过execute函数执行SQL语名创建两个表newtable1和newtable2.
Private Sub Form_Load()
Dim myDB As DAO.Database
Set myDB = DAO.Workspaces(0).CreateDatabase("F:\Microsoft Visual Studio\VB98\练习\mydb.mdb", dbLangGeneral)
Dim str_sql As String
str_sql = "create table newtable1(field1 text(10),field2 short)"
myDB.Execute str_sql
str_sql = "create table newtable2(field1 text(10),field2 short)"
myDB.Execute str_sql
myDB.Close
End Sub
回复 点赞
ryuginka 2004年12月26日
up
回复 点赞
Abyss-Xu 2004年12月26日
Option Explicit

Dim FileName As String

' 创建数据库以及表和字段
Private Sub Command1_Click()
Dim MyTable As TableDef
Dim MyField As Field
Dim MyDatabase As Database

Set MyDatabase = CreateDatabase(FileName, dbLangGeneral) ' 创建数据库
Set MyTable = MyDatabase.CreateTableDef(Text2.Text) ' 创建表
Set MyField = MyTable.CreateField(Text3.Text, dbText, 50) ' 创建字段
MyTable.Fields.Append MyField ' 将新创建的字段添加到表中
MyDatabase.TableDefs.Append MyTable ' 将表添加到数据库中

' 重复创建多个表和字段并添加到数据库中
Set MyTable = MyDatabase.CreateTableDef(Text4.Text)
Set MyField = MyTable.CreateField(Text5.Text, dbText, 50)
MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(Text6.Text, dbText, 50)
MyTable.Fields.Append MyField
MyDatabase.TableDefs.Append MyTable

MsgBox "完成创建数据库 " + FileName
End Sub

' 设置创建的数据库的位置和名称
Private Sub Command2_Click()
' 设置对话框
With CommonDialog1
.CancelError = True
.Filter = "数据库(*.mdb)|*.mdb"
.Flags = cdlOFNHideReadOnly
.ShowSave
If Err.Number = cdlCancel Then
Err.Clear
Exit Sub
End If

FileName = .FileName
Text1.Text = .FileTitle
End With
End Sub

' 退出程序
Private Sub Command3_Click()
End
End Sub
回复 点赞
wenquan836 2004年12月26日
我也想知道啊!
回复 点赞
发动态
发帖子

863

社区成员

5.5w+

社区内容

VB 数据库(包含打印,安装,报表)
社区公告
暂无公告