院系是本科的意思吗:建立到某个数据库的连接(VBA)

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 18:41:39

建立到某个数据库的连接(VBA)

[日期:2009-09-17] 来源:  作者: [字体:大 中 小]

 

RDO

要打开一个连接,您必须提供一个带参数的连接字符串。注意当 RDO 要创建一个 rdoQuery 对象时,是不需要连接的,但当最初创建一个 rdoResultset 对象时,则是需要的:

Dim cn As New rdoConnectionDim cnB As New rdoConnectionConst ConnectionString = "uid=myname;pwd=mypw;driver={SQLServer}; _server=myserver;database=pubs;dsn=''"

该连接字符串访问一个特定的 SQL Server,并允许 ODBC 在没有 DSN 的情况下打开一个连接。这是一个带有所有标准参数的典型 ODBC 连接字符串。

下一节代码,在窗体的 Load 事件中,建立了游标驱动程序的类型以及登录超时。缺省情况下,RDO 使用 rdUseIfNeeded 游标类型,该类型调用 SQL Server 上服务器端的游标。下面的示例中指定了 rdUseNone,从而使这种缺省规定不被遵守。rdDriverNoPrompt 标志意味着如果用户ID 和密码不匹配,应用程序将产生一个错误。

Private Sub Form_Load()With cncn.Connect = ConnectStringcn.LoginTimeout = 10cn.CursorDriver = rdUseNonecn.EstablishConnection rdDriverNoPromptEnd With

第二个连接执行任何客户批处理更新:

   With cnBcnB.Connect = ConnectStringcnB.CursorDriver = rdUseClientBatchcnB.EstablishConnectionEnd WithEnd Sub

当连接操作完成时最后一个事件发生,并且它能够对连接打开时所出现的任何错误进行处理。可以用该事件来测试连接是否正常工作,如果能正常工作,则使任何依赖于打开连接的按钮都成为有效的。

Private Sub cn_Connect(ByVal ErrorOccurred As Boolean)If ErrorOccurred ThenMsgBox "Could not open connection", vbCriticalElseRunOKFrame.Enabled = TrueEnd IfEnd Sub

ADO

要在 ADO 中建立一个数据库连接,首先创建一组可被 ADODB 对象引用的 ADO 对象。这些对象将在以后用于设置打开连接和generate结果集的特定属性:

Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim cnB As New ADODB.ConnectionDim Qy As New ADODB.Command

下一行创建了一个连接字符串,正如您在前一个 RDO 示例中所创建的那样。在两种情况下,您都使用 ODBC 的 “非-DSN” 连接策略以节省时间,并提高性能:

Const ConnectionString = "uid=myname;pwd=mypw;driver={SQL Server}; _server=myserver;database=pubs;dsn=",,connection=adConnectAsync"下面的声明对本示例中用到的变量进行初始化。(注意一个保存结果集的变量数组的创建):Dim sql As StringDim rc As IntegerDim i As IntegerDim Changes As IntegerDim bms() As Variant

下一步,打开一个到 Form_Load 事件中某个数据库的 ADO 连接。注意该代码和 RDO 代码是很相似的,只不过常数是以 "ad" 开始的,而不是 "rd"。如果要看到所有可以使用的常数,请查看 ADODB 类型库。

注意 不需要指定提示行为,因为 ADO 的缺省设置为“无提示”。不过,如果您选择对之进行更改,则可以使用 ADO Properties 集合来处理希望的提示行为。在 RDO 中,您可以用 OpenConnection 参数来设置行为。在 ADO 中,您必须设置 Properties ("Prompt") 属性。

同时,如果您不想使用游标驱动程序,则不必对其进行指定(象在 RDO 中的CursorDriver = rdUseNone),因为 ADO 的缺省规定是无游标驱动程序。

Private Sub Form_Load()With cn' 建立非 DSN 连接      .ConnectionString = ConnectString      .ConnectionTimeout = 10      '.Properties("Prompt") = adPromptNever       ' This is the default prompting mode in ADO.      .Open   End With   With cnB      .ConnectionString = ConnectString      .CursorLocation = adUseClient      .Open   End WithEnd Sub


和四十万excel用户一起学习excel,数千名excel高手义务帮你在线解答excel和VBA问题,欢迎到excel精英论坛做客!