老弟,是否可以考虑捐我点分!呵呵,我太需要分数了。
下面的内容可以给你解决了把在Visual Basic应用程序中,可以通过编写代码来建立一个数据库,以及对数据库进行索引、查询等许多操作。这样就需要用到几个新的对象 ,如:“Database”、“TableDef”、“Field”等,这些被统称为数据存取对象(Data AccessObject),也就是我们经常见到的DAO。 1. 创建数据库文件 首先讲的对象是DBEngine,它是DAO的最高层接口,在它下面可以生成一个Workspace对象集合,我们就是利用某一个Workspace对象的 CreateDatabase方法生成新的数据库文件。首先我们要定义对象变量。
例:Dim NewWS As Workspace
Dim NewDB As Database
然后,我们需要指明NewWS代表DBEngine中生成的哪个Workspace.
例:
Set NewWS = DBEngine.Workspace(0)
在上一例中,我们将工作环境定义为使用DBEngine的Workspace(0)对象,其实这个对象是缺省值,如果我们不做定义,也将使用该对象。但当 使用其它对象时(如Workspace(1)),就必须重新定义。下面我们利用Workspace的CreateDatabase方法来创建数据库文件,语法格式如下:
Set database = workspace.CreateDatabase ( name , local [ , Option ] )
其中:
database:前面定义的数据库类型变量,代表新建立的数据库对象
workspace:前面定义的Workspace类型变量,它表示所使用的工作环境,将包含新的数据库对象
Name:将要新建的数据库文件路径和名称
Local:该表达式用来指定字符串比较的规则,一般按英文字母顺序比较,可以指定为dbLanggeneral
Option:这是一个可选项,用来指定数据格式的版本及数据库是否加密,一般情况下,我们可以不指定此项。
例:‘在C盘的VB目录下建立一个名为sample的数据库文件
Set NewDB = NewWS.CreateDatabase(“C:\VB\sample”,dbLanggeneral) 2. 创建表 创建好数据库文件后,我们就要开始构造该数据库的结构了。
首先是表,一个数据库中可以包含很多表,每一个表是一个TableDef对象。我们还是要先定义对象变量。
例:‘定义三个TableDef对象变量
Dim NewTB1 As TableDef
Dim NewTB2 As TableDef
Dim NewTB3 As TableDef
我们可以为一个数据库文件定义多张表。在上例中我们定义了三张。
下面要通过database的CreateTableDef方法来创建这些表,其语法格式如下:
Set table = database.CreateTableDef([name[,attribute[,source[,connect]])
其中:
table:前面已经定义的表类型的变量
database:数据库类型的变量,它将包含新建的表
Name:设定新建表的名称
Attribute:用来指定新创建表的特征
Source:用来指定外部数据库表的名称
Connect:该字符串变量包含一些数据库源信息最后三个参数在访问部分数据库表时才会用到,一般可以缺省这几项。
例:‘为NewDB创建三张新表
‘分别命名为newtable1、newtable2、newtable3
Set NewTB1 = NewDB.CreatTableDef ( (“newtable1”)
Set NewTB2 = NewDB.CreatTableDef (“newtable2”)
Set NewTB3 = NewDB.CreatTableDef (“newtable3”) 3. 创建字段 数据库的每一张表中含有多个字段,每一个字段是一个Field对象,同样,我们先要为每张表定义Field对象变量。
例:‘为前面创建的表NewTB1定义两个字段变量
Dim Tb1Fld(2) As Field
‘为表NewTB2定义三个字段变量
Dim Tb2Fld(3) As Field
‘为表NewTB3定义三个字段变量
Dim Tb3Fld(3) As Field 在上例中,我们使用了数组,这样简化了定义语句,可以同时定义一张表中的多个Field。
下面我们要使用TabDef对象的CreateField方法来创建Field字段,其语法格式如下:
Set field = table.CreateField ( [ name [ , type [ , size ]] )
其中:
field:前面新定义的Field对象变量
table:表类型变量,它将包含新建的Field字段
name:新定义的字段名称
type:定义新字段的类型
size:指定字段的最大长度
例:‘为NewTB1建立两个新字段
Set NewFld(0) = NewTB1.CreateField ( “姓名”,dbText ,10 )
Set NewFld(1) = NewTB1.CreateField ( “年龄”,dbInteger,3 ) 4. 创建索引 我们可以为新的数据库创建索引,所谓索引就是指定数据库的记录按照一定的顺序排序,这样可以提高访问和存储效率,当然,索引不是必须 创建的。创建的每一个索引都是一个Index对象,每个Index对象中包含若干个Field对象,这些Field是用来指定数据库将按照哪个字段进行索 引。
首先,还是定义对象变量。
例:‘定义建立索引的对象变量
Dim NewIdx As Index
Dim IdxFld As Field
然后,我们要用CreateIndex方法来为表(Table)建立索引,语法格式如下:
Set index = table.CreateIndex ( “ name ” )
其中:
index:前面新定义的index对象变量
table:表类型变量,它将包含新建的index索引
name:新建的索引名称
光创建索引还不行,紧接着要做的就是为新索引指定索引字段(field),这样Index就可以按照这个字段对记录进行索引了,需要使用的是 CreateField方法,语法如下:
Set field = index.CreateField ( “ name ” )
其中:
field:前面新定义的field对象变量
index:上一步新建的索引对象变量
name:库中原有的字段名称,指示索引将按此字段排序
索引对象还有两个比较常用的属性,在指定索引字段后可以进行设置:
(1) Primary属性:表示Index是否代表主索引,若该属性为True,表示对象是主索引,若为False则表示不是主索引。
(2) Unique属性:表示索引值是否唯一,当属性为True时表示索引值唯一,属性为False时索引值不唯一(当索引由多个字段组成时,才会出现 )。 下一节中,我们还要讲到最后一步,如何将创建后的索引加入表中。
下面的例子为表NewTB1创建索引,并以表中原有的“姓名”字段作为索引字段。例:
‘创建新索引
Set NewIdx = NewTB1.CreateIndex ( “ 按姓名索引 ” )
‘为索引指定索引字段
Set IdxFld = NewIdx.CreateField ( “ 姓名 ” )
‘设置适当属性
Set NewIdx.Primary = True
Set NewIdx.Unique = True 5. 添加字段和表 当我们为每个表创建好字段(和索引)后,还要将字段(和索引)一个个的添加到表中,这就要用到Append方法。
当字段(和索引)加入表中之后,它才能真正成为表的一部分。这时,为字段定义的对象变量也就完成它的使命。
例:‘将新创建的字段加入表NewTB1中
NewTB1.Fields.Append NewFld(0)
NewTB1.Fields.Append NewFld(1)
‘将新创建索引字段加入索引中
NewIdx.Fields.Append NewFld
‘将新创建索引加入表中
NewTB1.Indexes.Append NewIdx
同样,我们建立好表后,也要用Append方法将它加入到数据库中。
例:‘将新表NewTB1加入到数据库NewDB中
NewDB.TableDefs.Append NewTB1
这样当我们将字段和表都添加完毕后,一个新的数据库就基本建成了。 6. 总结 在建立数据库结构时,一个数据库中可以定义任意多个表,每个表中可以定义任意多个字段,每个字段可以定义多个记录。
下面对建立数据库的基本步骤做一总结,完整代码如下:
例:
‘创建数据库文件
‘定义基本的对象变量
Dim NewWS As WorkSpace
Dim NewDB As Database
‘指定工作环境
Set NewWS = DBEngine.Workspace(0)
‘创建数据库文件
Set NewDB = NewWS.CreateDatabase(“C:\VB\sample”,dbLanggeneral)
‘创建表‘定义一个TableDef对象变量
Dim NewTB1 As TableDef
‘为NewDB创建一张新表,命名为newtable1
Set NewTB1 = NewDB.CreateTableDef (“newtable1”)
‘创建字段
‘为表NewTB1定义两个字段变量
Dim Tb1Fld(2) As Field
‘为NewTB1建立两个新字段
Set NewFld(0) = NewTB1.CreateField ( “姓名”,dbText ,10 )
Set NewFld(1) = NewTB1.CreateField ( “年龄”,dbInteger,3 )
‘创建索引
‘定义建立索引的对象变量
Dim NewIdx As Index
Dim IdxFld As Field
‘创建新索引
Set NewIdx = NewTB1.CreateIndex ( “ 按姓名索引 ” )
‘为索引指定索引字段
Set IdxFld = NewIdx.CreateField ( “ 姓名 ” )
‘设置适当属性
Set NewIdx.Primary = True
Set NewIdx.Unique = True
‘将定义的字段加入表NewTB1中
NewTB1.Fields.Append NewFld(0)
NewTB1.Fields.Append NewFld(1)
‘将新创建索引字段加入索引中
NewIdx.Fields.Append NewFld
‘将新创建索引加入表中
NewTB1.Indexes.Append NewIdx
‘将表NewTB1加入到数据库NewDB中
NewDB.TableDefs.Append NewTB1
下面的内容可以给你解决了把在Visual Basic应用程序中,可以通过编写代码来建立一个数据库,以及对数据库进行索引、查询等许多操作。这样就需要用到几个新的对象 ,如:“Database”、“TableDef”、“Field”等,这些被统称为数据存取对象(Data AccessObject),也就是我们经常见到的DAO。 1. 创建数据库文件 首先讲的对象是DBEngine,它是DAO的最高层接口,在它下面可以生成一个Workspace对象集合,我们就是利用某一个Workspace对象的 CreateDatabase方法生成新的数据库文件。首先我们要定义对象变量。
例:Dim NewWS As Workspace
Dim NewDB As Database
然后,我们需要指明NewWS代表DBEngine中生成的哪个Workspace.
例:
Set NewWS = DBEngine.Workspace(0)
在上一例中,我们将工作环境定义为使用DBEngine的Workspace(0)对象,其实这个对象是缺省值,如果我们不做定义,也将使用该对象。但当 使用其它对象时(如Workspace(1)),就必须重新定义。下面我们利用Workspace的CreateDatabase方法来创建数据库文件,语法格式如下:
Set database = workspace.CreateDatabase ( name , local [ , Option ] )
其中:
database:前面定义的数据库类型变量,代表新建立的数据库对象
workspace:前面定义的Workspace类型变量,它表示所使用的工作环境,将包含新的数据库对象
Name:将要新建的数据库文件路径和名称
Local:该表达式用来指定字符串比较的规则,一般按英文字母顺序比较,可以指定为dbLanggeneral
Option:这是一个可选项,用来指定数据格式的版本及数据库是否加密,一般情况下,我们可以不指定此项。
例:‘在C盘的VB目录下建立一个名为sample的数据库文件
Set NewDB = NewWS.CreateDatabase(“C:\VB\sample”,dbLanggeneral) 2. 创建表 创建好数据库文件后,我们就要开始构造该数据库的结构了。
首先是表,一个数据库中可以包含很多表,每一个表是一个TableDef对象。我们还是要先定义对象变量。
例:‘定义三个TableDef对象变量
Dim NewTB1 As TableDef
Dim NewTB2 As TableDef
Dim NewTB3 As TableDef
我们可以为一个数据库文件定义多张表。在上例中我们定义了三张。
下面要通过database的CreateTableDef方法来创建这些表,其语法格式如下:
Set table = database.CreateTableDef([name[,attribute[,source[,connect]])
其中:
table:前面已经定义的表类型的变量
database:数据库类型的变量,它将包含新建的表
Name:设定新建表的名称
Attribute:用来指定新创建表的特征
Source:用来指定外部数据库表的名称
Connect:该字符串变量包含一些数据库源信息最后三个参数在访问部分数据库表时才会用到,一般可以缺省这几项。
例:‘为NewDB创建三张新表
‘分别命名为newtable1、newtable2、newtable3
Set NewTB1 = NewDB.CreatTableDef ( (“newtable1”)
Set NewTB2 = NewDB.CreatTableDef (“newtable2”)
Set NewTB3 = NewDB.CreatTableDef (“newtable3”) 3. 创建字段 数据库的每一张表中含有多个字段,每一个字段是一个Field对象,同样,我们先要为每张表定义Field对象变量。
例:‘为前面创建的表NewTB1定义两个字段变量
Dim Tb1Fld(2) As Field
‘为表NewTB2定义三个字段变量
Dim Tb2Fld(3) As Field
‘为表NewTB3定义三个字段变量
Dim Tb3Fld(3) As Field 在上例中,我们使用了数组,这样简化了定义语句,可以同时定义一张表中的多个Field。
下面我们要使用TabDef对象的CreateField方法来创建Field字段,其语法格式如下:
Set field = table.CreateField ( [ name [ , type [ , size ]] )
其中:
field:前面新定义的Field对象变量
table:表类型变量,它将包含新建的Field字段
name:新定义的字段名称
type:定义新字段的类型
size:指定字段的最大长度
例:‘为NewTB1建立两个新字段
Set NewFld(0) = NewTB1.CreateField ( “姓名”,dbText ,10 )
Set NewFld(1) = NewTB1.CreateField ( “年龄”,dbInteger,3 ) 4. 创建索引 我们可以为新的数据库创建索引,所谓索引就是指定数据库的记录按照一定的顺序排序,这样可以提高访问和存储效率,当然,索引不是必须 创建的。创建的每一个索引都是一个Index对象,每个Index对象中包含若干个Field对象,这些Field是用来指定数据库将按照哪个字段进行索 引。
首先,还是定义对象变量。
例:‘定义建立索引的对象变量
Dim NewIdx As Index
Dim IdxFld As Field
然后,我们要用CreateIndex方法来为表(Table)建立索引,语法格式如下:
Set index = table.CreateIndex ( “ name ” )
其中:
index:前面新定义的index对象变量
table:表类型变量,它将包含新建的index索引
name:新建的索引名称
光创建索引还不行,紧接着要做的就是为新索引指定索引字段(field),这样Index就可以按照这个字段对记录进行索引了,需要使用的是 CreateField方法,语法如下:
Set field = index.CreateField ( “ name ” )
其中:
field:前面新定义的field对象变量
index:上一步新建的索引对象变量
name:库中原有的字段名称,指示索引将按此字段排序
索引对象还有两个比较常用的属性,在指定索引字段后可以进行设置:
(1) Primary属性:表示Index是否代表主索引,若该属性为True,表示对象是主索引,若为False则表示不是主索引。
(2) Unique属性:表示索引值是否唯一,当属性为True时表示索引值唯一,属性为False时索引值不唯一(当索引由多个字段组成时,才会出现 )。 下一节中,我们还要讲到最后一步,如何将创建后的索引加入表中。
下面的例子为表NewTB1创建索引,并以表中原有的“姓名”字段作为索引字段。例:
‘创建新索引
Set NewIdx = NewTB1.CreateIndex ( “ 按姓名索引 ” )
‘为索引指定索引字段
Set IdxFld = NewIdx.CreateField ( “ 姓名 ” )
‘设置适当属性
Set NewIdx.Primary = True
Set NewIdx.Unique = True 5. 添加字段和表 当我们为每个表创建好字段(和索引)后,还要将字段(和索引)一个个的添加到表中,这就要用到Append方法。
当字段(和索引)加入表中之后,它才能真正成为表的一部分。这时,为字段定义的对象变量也就完成它的使命。
例:‘将新创建的字段加入表NewTB1中
NewTB1.Fields.Append NewFld(0)
NewTB1.Fields.Append NewFld(1)
‘将新创建索引字段加入索引中
NewIdx.Fields.Append NewFld
‘将新创建索引加入表中
NewTB1.Indexes.Append NewIdx
同样,我们建立好表后,也要用Append方法将它加入到数据库中。
例:‘将新表NewTB1加入到数据库NewDB中
NewDB.TableDefs.Append NewTB1
这样当我们将字段和表都添加完毕后,一个新的数据库就基本建成了。 6. 总结 在建立数据库结构时,一个数据库中可以定义任意多个表,每个表中可以定义任意多个字段,每个字段可以定义多个记录。
下面对建立数据库的基本步骤做一总结,完整代码如下:
例:
‘创建数据库文件
‘定义基本的对象变量
Dim NewWS As WorkSpace
Dim NewDB As Database
‘指定工作环境
Set NewWS = DBEngine.Workspace(0)
‘创建数据库文件
Set NewDB = NewWS.CreateDatabase(“C:\VB\sample”,dbLanggeneral)
‘创建表‘定义一个TableDef对象变量
Dim NewTB1 As TableDef
‘为NewDB创建一张新表,命名为newtable1
Set NewTB1 = NewDB.CreateTableDef (“newtable1”)
‘创建字段
‘为表NewTB1定义两个字段变量
Dim Tb1Fld(2) As Field
‘为NewTB1建立两个新字段
Set NewFld(0) = NewTB1.CreateField ( “姓名”,dbText ,10 )
Set NewFld(1) = NewTB1.CreateField ( “年龄”,dbInteger,3 )
‘创建索引
‘定义建立索引的对象变量
Dim NewIdx As Index
Dim IdxFld As Field
‘创建新索引
Set NewIdx = NewTB1.CreateIndex ( “ 按姓名索引 ” )
‘为索引指定索引字段
Set IdxFld = NewIdx.CreateField ( “ 姓名 ” )
‘设置适当属性
Set NewIdx.Primary = True
Set NewIdx.Unique = True
‘将定义的字段加入表NewTB1中
NewTB1.Fields.Append NewFld(0)
NewTB1.Fields.Append NewFld(1)
‘将新创建索引字段加入索引中
NewIdx.Fields.Append NewFld
‘将新创建索引加入表中
NewTB1.Indexes.Append NewIdx
‘将表NewTB1加入到数据库NewDB中
NewDB.TableDefs.Append NewTB1
2 建立连接字符Ado.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydatabase.mdb"
3 建立表
Ado.RecordSource=“create table yourtable ( field1 text, field2 integer...)"
具体的sql语句你可以去Access里试试
'指定工作环境
Set NewWS = DBEngine.Workspace(0)
报错:未找到方法或数据源
是要引用什么么?flyingjust(just):
加的控件是ms ado data control(6.0)么?