--將ACCESS路徑共享
select* from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=網羅路徑\oadepot.mdb.mdb;User ID=Admin;Password=')...Department

解决方案 »

  1.   

    SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation 
    2Services(数据转换服务),然后选择  czdImport Data(导入数据)。 
    3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 
    4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。 
    5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 
    6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:
    -- ======================================================
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名
    -------------------------------------------------------------------------------------------------
    2.将access导入SQL server 
    -- ======================================================
    在SQL SERVER 里运行:
    SELECT *
    INTO newtable
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
          'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名
    -------------------------------------------------------------------------------------------------
    3.将SQL SERVER表里的数据插入到Access表中
    -- ======================================================
    在SQL SERVER 里运行:
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 
    (列名1,列名2)
    select 列名1,列名2  from  sql表
    实例:
    insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'C:\db.mdb';'admin';'', Test) 
    select id,name from Test
    INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
    SELECT *
    FROM sqltablename
      

  2.   

    不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver  'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
    select *from 本地表 --更新本地表 
    update b 
    set b.列A=a.列A 
     from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
    on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    --查询 
    select * 
    FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    --把本地表导入远程表 
    insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    select * from 本地表 
    --更新本地表 
    update b 
    set b.列B=a.列B 
    FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
    inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset 
    SELECT   * 
    FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
    --把本地表导入远程表 
    insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 
    select * from 本地表  
      

  3.   

    --測試過的
    SELECT *
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
          'Data Source="\\gold-misoa\d$\图书管理数据.mdb";User ID=Admin;Password=' )...图书登记
      

  4.   

    to:dawugui 
    谢谢,但目前主要的连接不上来的问题,做映射提示"不是有效路径",直接用ip,提示没有权限
      

  5.   

    關鍵是沒有權限,影射ACCESS好像是行不通的,我測試過~~
      

  6.   

    to:wufeng4552
    谢谢,我再试试
      

  7.   

    to:wufeng4552 
    试了一下,还是不行
    select* from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=\\192.168.0.33\data\oadepot.mdb.mdb;User ID=Admin;Password=')...Department 
    不行,提示没有权限.难道要设置别的什么吗?在网上邻居里是可以打开这个数据库的.服务器是2003的系统,access的机器是xp的系统
      

  8.   

    關鍵是你用的操作系統的帳號,是否有足夠的權限,也就是說登錄你電腦的帳號,是否有足夠的權限操作access所在的電腦
      

  9.   

    bcp访问文件是可以的。
    openrowset通过oledb接口驱动操作是不可以的。
    access不支持跨域访问。
      

  10.   

    e,上面错了,
    是可以访问的,跟直接oledb接口不一样。
    先运行
    [code=CMD]
    net use \\192.168.18.111 password /user:myuser
    [/code]
    SELECT *
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
          'Data Source="\\192.168.18.111\d$\db1.mdb";User ID=Admin;Password=' )...a/*
    1 10
    2 20
    */
      

  11.   

    我是在服务器上操作的,服务器是用administrator 登录的,服务器的mssql 2k是用sa登录的,xp的机器是data\oadepot.mdb是共享过的.在网上邻居里是可以打开这个数据库的.问题出在哪里呢?
      

  12.   

    select* from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=\\192.168.0.33\data\oadepot.mdb.mdb;User ID=Admin;Password=')...Department 你直接用网络映射名,不用路径试试。
    假设你网络映射名为:Datapath,不管在哪个目录下面都是一样的select* from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=\\192.168.0.33\datapath\oadepot.mdb;User ID=Admin;Password=')...Department 
      

  13.   

    @hewei001
    \\192.168.0.33\data\oadepot.mdb.mdb 本来就是网络的共享名.我是用guest,空密码连到服务器的,也许要到这个方面试试.