注:找这个解决方法很辛苦,有些笨拙,但还好,可以解决问题。适用于SQL Server 2000

原文出自:如何在链接服务器中使用 SQL Server 7.0 分布式查询来访问受保护的 Access 数据库(http://support.microsoft.com/?kbid=246255)

Microsoft SQL Server 7.0 版提供了通过使用 OLE DB 提供程序对不同数据库执行查询的功能。可以使用以下方式查询数据库:

  • OpenQuery 或 OpenRowset Transact-SQL 函数。

    - 或 -

  • 具有四部分名称(包括链接服务器名称)的查询。

要将链接服务器设置为访问受保护的 Microsoft Access 数据库,请使用下列步骤:

  1. 使用注册表编辑器将注册表配置为使用正确的 Microsoft Access 工作组信息文件(.mdw 文件),然后向以下注册表项中添加工作组信息文件的完整路径名:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB

    接下来,将其值设置为该文件的路径和名称,例如:

    C:\...\MySystem.mdw
    1. 要打开注册表编辑器,请定位到“开始”按钮,然后单击“运行”。在“运行”对话框中,键入 Regedit,然后按“确定”。
    2. 在注册表编辑器中,定位到以下项:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\
    3. 单击右键,然后依次选择“新建”、“字符串值”。
    4. 键入 SystemDb,然后按 Enter
    5. 双击左窗格中的“SystemDb”项。
    6. 在“数值数据”文本框中,键入 .mdw 文件的完整路径。
    7. 关闭注册表编辑器。
  2. 执行 sp_addlinkedserver 存储过程创建链接服务器。指定 Microsoft.Jet.OLEDB.4.0 作为 provider_name,并指定 Microsoft Access .mdb 数据库文件的完整路径名作为 data_source。data_source 将在服务器而不是客户端上进行计算,因此该路径在服务器上必须有效。
  3. 执行 sp_addlinkedsrvlogin 存储过程创建从本地登录到 Microsoft Access 登录的登录映射。
回到顶端

查询受保护的 Microsoft Access 数据库的步骤

  1. 修改步骤 1(请参见“更多信息”部分)中显示的注册表项并添加 .mdw 文件的位置。
  2. 启动 Microsoft Visual Basic 6.0 并选择一个标准 EXE 项目。默认情况下会创建 Form1。
  3. 在“项目”菜单上,选择“引用”,然后将其中一个引用设置为“Microsoft ActiveX Data Objects 2.1 库”(或更高版本)。
  4. 在 Form1 上放置两个命令按钮和一个 DataGrid 控件(分别名为 Command1、Command2 和 DataGrid1)。
  5. 将以下代码粘贴到 Form1 的“声明”部分中:

    注意:在运行此代码之前,必须将 User ID=<User ID> 和 password=<Strong Password> 更改为正确的值。请确保该用户 ID 具有在数据库中执行此操作所需的适当权限。

    Dim adorst As New ADODB.Recordset
    Dim adoconn As New ADODB.ConnectionPrivate Sub Command1_Click()Dim strConn As Stringadoconn.Open "Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=master;User Id=<User ID>;Password=<Strong Password>;"adoconn.Execute "EXEC sp_addlinkedserver 'SecuredJetLS', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\.....\MyDatabase.mdb'"adoconn.Execute "EXEC sp_addlinkedsrvlogin 'SecuredJetLS', FALSE, NULL, 'UserName', 'Password'"adoconn.CloseMsgBox "Successful Setup"End SubPrivate Sub Command2_Click()Dim SQL As String' Using OpenQuery syntax. SQL = " Select a.* from OPENQUERY(SecuredJetLS, 'Select * from MyTable') a"' Using OpenRowset syntax.' SQL = "SELECT * From OpenRowset('Microsoft.Jet.OLEDB.4.0','c:\....\MyDatabase.mdb'; 'UserName';'Password', MyTable)"' Using four-part name syntax.' SQL = "Select * from SecuredJetLS...MyTable"adoconn.CursorLocation = adUseClientadoconn.Open "Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=master;User Id=<User ID>;Password=<Strong Password>;"adorst.Open SQL, adoconn, adOpenStatic, adLockReadOnlySet DataGrid1.DataSource = adorstEnd SubPrivate Sub Form_Load()Command1.Caption = "Setup Linked Server"Command2.Caption = "Query Linked Server"
    End SubPrivate Sub Form_Unload(Cancel As Integer)adorst.CloseSet adorst = Nothingadoconn.CloseSet adoconn = Nothing
    End Sub

  6. 运行该项目。
  7. 单击“设置链接服务器”。如果将连接字符串中的 sp_addlinkedserver 和sp_addlinkedsrvlogin 修改为正确的参数,则可以成功创建链接服务器。
  8. 单击“查询链接服务器”。如果将连接字符串和查询文本修改为正确的参数,将使用您的数据填充 DataGrid 控件。
回到顶端

如何通过OPENROWSET函数向SQL Server导入带工作组(mdw)保护的Access数据库数据(转)...相关推荐

  1. SQL server 导入excel表格

    导入教程: 打开SQL Server Management Studio,按图中的路径进入导入数据界面. 导入的时候需要将EXCEL的文件准备好,不能打开.点击下一步. 数据源:选择"Mic ...

  2. 将数据从 SQL Server 导入 Azure Storage Table

    点击上方蓝字关注"汪宇杰博客" 导语 最近有个需求要将数据存储从 SQL Server 数据库切换到 Azure Storage 中的 Table.然而不管是 SSMS 还是 Az ...

  3. 学习SQL:使用日期和时间函数创建SQL Server报表

    In the previous two articles of this series, we've discussed how to create a report and how to use b ...

  4. sql server 导入excel数据表

    sql server 导入excel数据表 之前谈到过在sql server中对用户的购买记录做过关联分析,数据来源是来自sql server数据库,但有的时候,数据源来自于其他文件,比如excel文 ...

  5. 服务器腾讯通文件数据源导入,连接到 Excel 数据源(SQL Server 导入和导出向导)...

    连接到 Excel 数据源(SQL Server 导入和导出向导) 04/02/2018 本文内容 适用于: SQL Server(所有支持的版本) Azure 数据工厂中的 SSIS Integra ...

  6. access文件链接mysql,连接到 Access 数据源(SQL Server 导入和导出向导)

    2017/06/20 适用对象: SQL Server,包含 Linux 版 Azure SQL 数据库 Azure Synapse Analytics (SQL DW) 并行数据仓库 本主题介绍如何 ...

  7. 关于SQL server导入.mdf文件显示附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

    关于SQL server导入.mdf文件显示附加数据库时出错.有关详细信息,请单击"消息"列中的超链接 问题原因 看了一下,应该是从别人那边拷过来的数据库文件没有本地操作系统的权限 ...

  8. Microsoft SQL Server 2005 提供了一些工具来监控数据库

    --WL 09-07-03 /*Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务 ...

  9. SQL Server 2008 - 第2章 创建、管理 数据库

    第2章  创建数据库 数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础.用户可以通过创建数据库来存储不同类别或者形式的数据. 因此,在本章用户将详细地学习针对数据库的基本 ...

最新文章

  1. UAC 实现原理及绕过方法
  2. PHPUnit 3.4.10 在windows上配置
  3. how is opportunity detail page display first item by default
  4. java 字段构造函数_依赖注入–字段vs构造函数vs方法
  5. 上周热点回顾(7.9-7.15)
  6. scrapy-redis源码解析
  7. 登录cookie html,cookie注册
  8. 如何将spyder打包成exe_exe程序打包成安装文件,自己的程序制作成一键安装程序...
  9. 【PAT Advanced Level】1011. World Cup Betting (20)
  10. vsftp不同帐号的目录和权限
  11. aws cloud map_Amazon EC2 – AWS Elastic Compute Cloud
  12. 用ultraiso安装linux系统教程,使用UltraISO刻录光盘教程
  13. msm8953 uart配置
  14. 腾讯地图位置服务器,腾讯地图推出地形图服务
  15. 对于时间管理初识--时间管理入门
  16. 微服务Feign调用后开启Schedule报错No thread-bound request found: Are you referring to request attributes outsid
  17. 非常好的产品研发管理文章,后面问题回答的很精彩(转)
  18. luooj P1655手套
  19. SQL grouping
  20. javaFx屏幕截图工具

热门文章

  1. 苹果x来电闪光灯怎么设置_手机上使用的记事备忘便签软件怎么设置来电提醒功能?...
  2. 计算机没有外审的核心期刊,国内核心期刊投稿经验总结战友们共同分享丁香园论坛...
  3. layui 前端计算
  4. 2013最新手机QQ源码源码下载
  5. 用C语言实现杨辉三角
  6. Python标准库简介
  7. 【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)
  8. mysql from 嵌套查询,MySQL嵌套查询实例详解
  9. 注册电子邮箱帐号优点
  10. java导出excel问题记录