我这么写
 strSql = "SELECT * Into StandardSymptom FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','" & strPath & "Tools\Symptom.mdb" & ";'admin';'',StandardSymptom)"
 
不对!

解决方案 »

  1.   

    strSql = "SELECT * Into StandardSymptom FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source=" & strPath & "Tools\Symptom.mdb" & ";Jet OLEDB:Database Password=123;user id=admin;password=')...StandardSymptom"
     提示
    [microsoft][odbc sql server driver][sql server] 已拒绝对 ole db 提供程序 'Microsoft.jet.oledb.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。什么原因
      

  2.   

    不用SQL语句实现的话,可以用数据导入
      

  3.   

    OPENROWSET语句中指定的路径是数据库服务器端的路径。
    我用了 查询 exec master..xp_fileexist 'd:\Symptom.mdb' 存在insert into TSymptom_StandardSymptom SELECT * from openrowset('Microsoft.Jet.OLEDB.4.0', 'd:\Symptom.mdb';'admin';'',StandardSymptom)
    也是提示上面的错误
      

  4.   

    分析器上
    服务器: 消息 7399,级别 16,状态 1,行 1
    OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
    OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IOpenRowset::OpenRowset returned 0x80004005:  提供程序未给出有关错误的任何信息。]。
      

  5.   

    导入导出大全 
    *******  导出到excel
    EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'/***********  导入Excel
    select * from openrowset('MicroSoft.Jet.OleDB.4.0',
                             'Excel 5.0;HDR=yes;Database=c:\test.xls',sheet1$)
    --------------------------------------------------------
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
    SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions/** 导入文本文件
    EXEC master..xp_cmdshell 'bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword'/** 导出文本文件
    EXEC master..xp_cmdshell 'bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword'

    EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'导出到TXT文本,用逗号分开
    exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
    BULK INSERT 库名..表名
    FROM 'c:\test.txt'
    WITH (
        FIELDTERMINATOR = ';',
        ROWTERMINATOR = '\n'
    )
    --/* dBase IV文件
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')
    --*/--/* dBase III文件
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')
    --*/--/* FoxPro 数据库
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
    'select * from [aa.DBF]')
    --*//**************导入DBF文件****************/
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;
    SourceDB=e:\VFP98\data;
    SourceType=DBF',
    'select * from customer where country != "USA" order by country')
    go
    /***************** 导出到DBF ***************/
    如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句insert into openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
    'select * from [aa.DBF]')
    select * from 表说明:
    SourceDB=c:\  指定foxpro表所在的文件夹
    aa.DBF        指定foxpro表的文件名. 
    /*************导出到Access********************/
    insert into openrowset('Microsoft.Jet.OLEDB.4.0', 
       'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表/*************导入Access********************/
    insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 
       'x:\A.mdb';'admin';'',A表) 
     
    Top 
     
     回复人: txlicenhe(马可) ( ) 信誉:167  2003-10-10 18:52:32Z  得分:0  
     
     
      
    *********************  导入 xml 文件DECLARE @idoc int
    DECLARE @doc varchar(1000)
    --sample XML document
    SET @doc ='
    <root>
      <Customer cid= "C1" name="Janine" city="Issaquah">
          <Order oid="O1" date="1/20/1996" amount="3.5" />
          <Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied
          </Order>
       </Customer>
       <Customer cid="C2" name="Ursula" city="Oelde" >
          <Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue 
                 white red">
                <Urgency>Important</Urgency>
                Happy Customer.
          </Order>
          <Order oid="O4" date="1/20/1996" amount="10000"/>
       </Customer>
    </root>
    '
    -- Create an internal representation of the XML document.
    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc-- Execute a SELECT statement using OPENXML rowset provider.
    SELECT *
    FROM OPENXML (@idoc, '/root/Customer/Order', 1)
          WITH (oid     char(5), 
                amount  float, 
                comment ntext 'text()')
    EXEC sp_xml_removedocument @idoc 
    Top 
     
     回复人: txlicenhe(马可) ( ) 信誉:167  2003-10-10 18:54:30Z  得分:0  
     
     
      
    邹健的
    /********************导整个数据库*********************************************/用bcp实现的存储过程
    /*
    实现数据导入/导出的存储过程
             根据不同的参数,可以实现导入/导出整个数据库/单个表
    调用示例:
    --导出调用示例
    ----导出单个表
    exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1
    ----导出整个数据库
    exec file2table 'zj','','','xzkh_sa','C:\docman',1--导入调用示例
    ----导入单个表
    exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0
    ----导入整个数据库
    exec file2table 'zj','','','xzkh_sa','C:\docman',0*/
    if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    go
    create procedure File2Table
    @servername varchar(200)--服务器名
    ,@username varchar(200)--用户名,如果用NT验证方式,则为空''
    ,@password varchar(200)--密码
    ,@tbname varchar(500)--数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表
    ,@filename varchar(1000)--导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt
    ,@isout bit--1为导出,0为导入
    as
    declare @sql varchar(8000)if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表
    begin
    set @sql='bcp '+@tbname
    +case when @isout=1 then ' out ' else ' in ' end
    +' "'+@filename+'" /w'
    +' /S '+@servername
    +case when isnull(@username,'')='' then '' else ' /U '+@username end
    +' /P '+isnull(@password,'')
    exec master..xp_cmdshell @sql
    end
    else
    begin--导出整个数据库,定义游标,取出所有的用户表
    declare @m_tbname varchar(250)
    if right(@filename,1)<>'\' set @filename=@filename+'\'set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U'''
    exec(@m_tbname)
    open #tb
    fetch next from #tb into @m_tbname
    while @@fetch_status=0
    begin
    set @sql='bcp '+@tbname+'..'+@m_tbname
    +case when @isout=1 then ' out ' else ' in ' end
    +' "'+@filename+@m_tbname+'.txt " /w'
    +' /S '+@servername
    +case when isnull(@username,'')='' then '' else ' /U '+@username end
    +' /P '+isnull(@password,'')
    exec master..xp_cmdshell @sql
    fetch next from #tb into @m_tbname
    end
    close #tb
    deallocate #tb
    end
    go