购买了VBA 精粹的读者会发现在第379页,提到了这个帖子。 由于SQL2000 Server 数据库用户较之Access少得多,且光盘中无法体现SQL2000 Server 数据库的链接效果 所以这部分内容在网上继续。 Access链接SQL2000 Server 对网站数据管理、ACCESS升级到SQL2000 提供了很好的解决方案。 可以在不改动源代码的情况下,依旧使用Access数据库、实现数据扩容,具体方法就是在Access中建立链接表。 以下是在 Access数据库中创建一个链接到 SQL2000 Server 数据库的 连接表的代码。 Sub LinkSQL() ' 引用 Microsoft ADO Ext. 2.8 for DDL and Security Dim Cat As New ADOX.Catalog Dim mytable As New ADOX.Table Dim LinkString As String accPath = ThisWorkbook.Path & "\学校管理.mdb" LinkString = "ODBC;Driver=SQL Server;Server=192.168.1.88;Database=学校数据库;Uid=sa;Pwd=123456" Cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & accPath With mytable .Name = "奖学金SQL" '链接表的名称 .ParentCatalog = Cat .Properties("Jet OLEDB:Link Provider String").Value = LinkString .Properties("Jet OLEDB:Cache Link Name/Password").Value = True .Properties("Jet OLEDB:Remote Table Name").Value = "奖学金" .Properties("Jet OLEDB:Create Link").Value = True End With Cat.Tables.Append mytable End Sub 主要参数含义: LinkString 是SQl2000数据库的链接字符串,其中Server=192.168.1.88;Database=学校数据库;Uid=sa;Pwd=123456 分别是服务器的ip地址或名称、数据库名称、用户名 、密码。请根据需要修改。 .Properties("Jet OLEDB:Cache Link Name/Password").Value = Ture 此句含义为保存 用户名及密码,如果省略此句,则每次访问链接表都要求输入用户名及密码(Access与SQL2000不在同一台机子上时) .Properties("Jet OLEDB:Remote Table Name").Value = "奖学金" 此句指定要链接的表,表名为 “奖学金” 链接表创建完成后,可以像访问Access的表一样访问连接表。
[此贴子已经被作者于2008-8-18 13:23:32编辑过] |