cnn1.CommitTrans Else
cnn1.RollbackTrans End If
'打印记录集中的当前数据。 rstTitiles.Requery rstTitles.MoveFirst
Do While Not rstTitles.EOF
Debug.Print rstTitles!Title&\ rstTitles.MoveNext
Loop
'恢复原始数据,因为这是一个演示
rstTitles.MoveFirst
Do Until rstTitles.EOF
If Trim(rstTitles!Type)=\ rstTitles!Type=\ rstTitles.Update End If
rstTitles.MoveNext Loop
rstTitles.Close cnn1.Close
End Sub此例更改了数据库中Titles表中所有心理学书籍的类型。在BeginTrans方法启动事务将所有对Titles表的更改隔离后,CommitTrans方法将保存更改。可使用Rollback方法撤消用Update方法保存的更改。
2.Open方法
Open方法打开一个数据源的连接,语法如下:
connection.Open ConnectionString,UserID,Password,OpenOptions 参数说明:
▲ConnectionString:这是一个可选的字符串,它包含了连接信息。 ▲UserID:可选的字符串,它包含了建立连接时所使用的用户名称。 ▲Password:可选的字符串,它包含了建立连接时所使用的密码。
▲OpenOptions:可选的字符串,它包含了建立连接时所使用的连接方式。
3.Close方法
Close方法关闭一个到数据源的连接。在关闭的同时,此连接所使用的任何资源都会被释放。它的语法如下:
Object.Close
例:使用Connection对象的Open和Close方法的示例代码。 Public Sub OpenClose_Example() Dim conn As ADODB.Connection
'Open the Connection object,omit the password conn.Open \ 'Use the Connection object here...
'Close the Connection
conn.Close
End Sub4.Execute方法
Execute方法用来执行查询或由数据源支持的其他命令,并且返回一个RecordSet对象,语法如下:
Set recordset=connection.Execute(CommandText,Recordsaffected,Options) 参数说明:
▲CommandText:这是一个包含要执行的SQL语句、表名、存储过程或特定提供者的文本的字符串。
▲RecordsAffected:这是一个可选的长整型变量,提供者向其返回操作所影响的记录数目。
▲Options:可选的长整型变量,指示提供者应如何为CommandText参数赋值。 例:使用Connection对象的Execute方法的示例代码。 Public Sub Execute_Example()
Dim cnn As ADODB.Connection
Dim MyRecordset As ADODB.Recordset Dim Mysql As String
Set cnn=New ADODB.Connection
Set MyRecordset=New ADODB.Recordset cnn.Open \ Mysql=\ MyRecordset=cnn.Execute Mysql cnn.Close
MyRecordset.Close
End Sub5.OpenSchema方法
OpenSchema方法从提供者中获取数据为纲要信息,语法如下: Set recordset=connection.OpenSchema(QueryType,Criterisa,SchemaID) 参数说明:
▲QueryType:QueryType参数指出所要运行的纲要查询类型。
▲Criteria:可选参数,指出每个QueryType选项的查询限制条件数组。
▲SchemaID:OLE DB规范没有定义提供者纲要查询的GUID。如果QueryType设置为adSchemaProviderSpecific,则需要该参数,否则不使用它。
例:使用Connection对象的OpenSchema方法的示例代码。 Public Sub OpenSchemaX()
Dim cnn1 As ADODB.Recordset
Dim rstSchema As ADODB.Recordset Dim strCnn As String
Set cnn1=New ADODB.Connection
strCnn=\ cnn1.Open strCnn
Set rstSchema=cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Debug.Print \ rstSchema!TABLE_TYPE&VbCr
rstSchema.MoveNext
Loop
rstSchema.Close cnn1.Close End Sub
上例使用了OpenSchema方法显示Pubs数据库内每个表的名称和类型。
vb神童教程(续)--vb连接Access数据库实例
下面我们给出一个连接到Access数据库的实例,此例中用到的数据库为Access 2003。首先在e盘建立一个名为vb的文件夹,然后打开Access 2003,单击“文件”→“新建”,在右侧出现的任务窗格中单击“空数据库”,在出现的对话框中,我们在\文件名\项后输入给新数据库起的名称并选择保存位置,这里我们为新数据库命名为Access_db并保存到我们刚才建立的文件夹中,如下图,单击\创建\按钮后,系统就生成了一个新的Access空数据库。 在空数据库中,还没有任何用户所创建的表,接下来我们就要使用设计器(如下图)为Access_db数据库建立表。
首先我们为Access_db创建一个名为“wzdz”的表,该表由以下4个字段组成: (1)编号:此为Access自动添加的主键字段,我们直接拿来使用。我们可直接设置后三个字段,在输入完了wzdz表的各个字段之后,此时关闭表设计器,Access会提示是否要进行保存表,选择“是”,然后为表起名为“wzdz”。因为没有定义主键(primary Key),Access会提示为表加上一个主键,按提示将编号设置为主键即可。
(2)后三个字段分别为网站名称、网站地址和网站描述,三个字段的属性是相同的,如下:
▲数据类型:文本。
▲字段大小:50
▲有效性规则:无。 ▲必填字段:否
▲允许空字符串:否
▲索引:无
设置完以上字段后,再重新在设计视图中打开wzdz表(方法:在设计器中右击wzdz表名,选“设计视图”命令),应如下图所示:
有了数据库和表之后,如果想让VB应用程序访问数据库,还需进行数据源的配置。只有在配置完成了数据源之后,才能让VB应用程序同数据库进行正确的连接工作,在VB应用程序中才可以通过ADO对象来进行具体数据的操作,如果在建立了数据库之后没有对数据源进行配置或者对数据源的配置工作出现错误,则在此之前所做的一切工作都是白费的。 我们按上一章所述的步骤进行ODBC数据源的配置,建立一个名为Access_db的用户DSN,接下来我们使用VB去具体地连接到Access_db数据库。
首先打开VB,新建一个标准exe工程,在工程的form1中我们输入如下的代码: Private Sub Form_Load()
Dim cnn As ADODB.Connection Dim my_recordset As ADODB.Recordset Dim connect_string As String Dim statestring As String Set cnn=New ADODB.Connection Set my_recordset=New ADODB.Recordset '连接Access数据库
connect_string=\
cnn.Open connect_string
Select Case cnn.State Case adStateClose
statestring=\ Case adStateOpen
statestring=\ End Select
'显示连接的状态
MsgBox \连接成功!\ '对wzdz表进行查询操作
my_recordset.Open \ my_recordset.Close
End Sub本段连接数据库的代码是写在窗体的Form_Load()子过程中的,对数据库的连接工作是在程序一开始即窗体的加载过程中进行的。在Form_Load()中,首先定义了一个Connection对象cnn和一个RecordSet对象my_recordset,以及两个字符串类型的变量connect_string和statestring,接下来的两个Set语句是为了生成一个Connection对象cnn和一个RecordSet对象my_recordset。然后是连接Access数据库,先把连接字符串“DSN=Access_db;UID=;PSW=\赋给字符串变量connect_string。连接字符串中的具体各项内容是根据ODBC数据源的配置而定的,不同的配置方式和配置内容就会有不同的连接字符串。cnn的Open事件用来执行与数据库的连接工作。为了验证与数据库的连接是否正确,这里我们读取了cnn的State属性。State属性可用用来说明其对象状态是打开或关闭的。在使用了State属性后,通过系统函数MsgBox把与数据库的连接状态显示给用户。如果连接状态是打开的,对话框标题栏的文字是“adStateOpen\,如下图:
如果连接状态是关闭,则对话框标题栏显示“adStateClose”。 其后的语句my_recordset.Open \,cnn则示范了如何从数据库中查询所需要的数据。
注意:在程序中每当用一个Set语句来生成一个Connection或RecordSet对象时,最后使用完毕之后应操作使用Close方法对其进行关闭操作。
例程调试中可能出现的问题:
上述代码运行时可能会显示\用户定义类型未定义\,错误定位在“Dim cnn As ADODB.Connection”这一句上。
解决方法:单击“工程”→“引用”,勾选“Microsoft ActiveX Data Object 2.6”,再运行程序即无此问题.
vb神童教程(续)--使用ADO Data控件连接Access的简单实例
ADO Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接.尽管可以在应用程序中直接使用ActiveX数据对象,但ADO Data控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使