Sub ConnectionExample1() Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection '''' 用ODBC打开连接. cnn.Open "Pubs", "sa", "" '''' 检查是否完成连接 If cnn.State = adStateOpen Then MsgBox "Welcome to Pubs!" Else MsgBox "Sorry. No Pubs today." End If 关闭connection对象 cnn.Close End Sub 如果你只需要连接一个数据源。下面的代码要比上面的简单。作为选择,你可以创建一个connection对象,在调用open方法前你可以先设置ConnectionString属性。这种方法容许你连接一个数据源后再重新用这个对象再连接另一个数据源。 Sub ConnectionExample2() Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection '''' 用ODBC DSN 建立连接 cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;" cnn.Open '''' 检查是否与数据源建立了连接. If cnn.State = adStateOpen Then MsgBox "Welcome to Pubs!" Else MsgBox "Sorry. No Pubs today." End If ''''关闭connection对象 cnn.Close End Sub 在你对CONNECTION对象建立连接前,你可以设置它的其它属性。例如,你可以设置连接超时。
Sub ConnectionExample3() Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection '''' 设置CONNECTION属性 cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;" cnn.ConnectionTimeout = 30 '''' 打开connection 对象 cnn.Open '''' 检查是否已经连接上数据源 If cnn.State = adStateOpen Then MsgBox "Welcome to Pubs!" Else MsgBox "Sorry. No Pubs today." End If '''' 关闭connection对象 cnn.Close End Sub ConnectionString属性的语法结构假定数据源已经被建立或利用系统管理员的身份使用ODBC.不依靠存在的odbc数据源变得流行起来。这样就减轻了安装的负担。下面的例子是一个连接SQL SERVER的可选择性的方法,仅依靠本身存在的odbc driver
. Sub ConnectionExample4() Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection ''''利用引用ODBC DRIVER打开CONNECTION对象 cnn.ConnectionString = "driver={SQL Server};" & _ "server=rgreennt;uid=sa;pwd=;database=pubs" cnn.Open '''' Find out if the attempt to connect worked. ''''检查是否已经建立连接 If cnn.State = adStateOpen Then MsgBox "Welcome to Pubs!" Else MsgBox "Sorry. No Pubs today." End If '''' 关闭CONNECTION对象 cnn.Close End Sub 现在ODBC DRIVER 有更广的变化,你可以用ADO和数据源对话。不久将会有更的的OLE DB提供者与数据源建立连接。The Microsoft® OLE DB Provider for ODBC是当前ADO默认的提供者。你能用不同的提供者设置CONNECTION对象的provider属性。
Sub ConnectionExample5() Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection ''''设置PROVIDER属性利用OLE DB Provider for ODBC cnn.Provider = "MSDASQL" ''''用ODBC DSN打开CONNECTION对象 cnn.ConnectionString = "driver={SQL Server};" & _ "server=rgreennt;uid=sa;pwd=;database=pubs" cnn.Open
''''检查是否连接上数据源 If cnn.State = adStateOpen Then MsgBox "Welcome to Pubs!" Else MsgBox "Sorry. No Pubs today." End If
''''关闭CONNECTION对象 cnn.Close
End Sub 上面的代码设置PROVIDER属性不是必须因为ADO的默认提供者就是OLE DB PROVIDER FOR ODBC.这里只是认你知道当你用其它的OLE DB PROVIDERS时如何设置。
Sub ConnectionExample6() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection '''' 引用 ODBC driver 建立连接. cnn.ConnectionString = "driver={SQL Server};" & _ "server=rgreennt;uid=sa;pwd=;database=pubs" cnn.Open '''' 执行SQL 语句创立一个RECORDSET对象. Set rs = cnn.Execute("Select * From authors") '''' 显示第一个 author. MsgBox rs("au_fname") & " " & rs("au_lname") '''' 断开连接 rs.Close End Sub 记住用EXECUTE返回的RECORDSET是只读的,并且是仅向前光标。如果你需要用RECORDSET物件的更多函数,你首先要创建RECORDSET物件并设置想要设置的属性然后用OPEN方法打开它来执行查询和返回想要得到的光标类型.
Sub ConnectionExample7() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection ''''引用ODBC DRIVER建立连接 cnn.ConnectionString = "driver={SQL Server};" & _ "server=rgreennt;uid=sa;pwd=;database=pubs" cnn.Open ''''向数据源发送删除指令 cnn.Execute ("Delete From authors Where au_id = ''''011-01-0111''''") '''' 检查有多少行数据被删除 Set rs = cnn.Execute("Select @@rowcount") '''' 显示第一个字段 MsgBox rs(0) & " rows deleted" ''''关闭连接 rs.Close End Sub 下面的例子,这个COMMAND通过指定的存储过程的名字运行数据源的存储过程.由于需要返回数据,所以你必需建立RECORDSET物件。
Sub ConnectionExample8() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection '''' 引用ODBC DRIVER来建立连接 cnn.ConnectionString = "driver={SQL Server};" & _ "server=rgreennt;uid=sa;pwd=;database=pubs" cnn.Open '''' 建立RECORDSET对象来运行存储过程 Set rs = cnn.Execute("Exec byroyalty 50") '''' 通过循环来显示AUTHOR的ID Do While Not rs.EOF MsgBox rs("au_id") rs.MoveNext Loop '''' 断开连接 rs.Close End Sub