建立一个到 SQLSERVER 的connection
然手执行以下语句insert into tablename select [fieldnamelist] from OPENROWSET('Microsoft.Jet.OLEDB.4.0','MDB所在的全路径';'admin';'', tablename)

解决方案 »

  1.   

    使用 INSERT...SELECT 插入行
    INSERT 语句中的 SELECT 子查询可用于将一个或多个其它的表或视图的值添加到表中。使用 SELECT 子查询可同时插入多行。下面的 INSERT 语句将 titles 中数据的 type 是 modern cooking 的所有行的数据插入到一个单独的表中:USE pubs
    INSERT INTO MyBooks
       SELECT title_id, title, type
       FROM titles
       WHERE type = 'mod_cook'子查询的选择列表必须与 INSERT 语句列的列表匹配。如果没有指定列的列表,选择列表必须与正向其插入的表或视图的列匹配。INSERT...SELECT 语句的另一个作用是从 Microsoft® SQL Server™ 的外部数据源插入数据。INSERT 语句中的 SELECT 可以: 使用由四部分组成的名称引用链接服务器上的远程表。有关更多信息,请参见使用链接服务器名标识数据源。
    使用 OPENROWSET 引用远程表。有关更多信息,请参见使用特殊名称标识数据源。
    使用在远程服务器上执行的查询结果集。有关更多信息,请参见将直接传递查询作为表使用。 
    使用特殊名称标识数据源
    当引用 OLE DB 数据源的频率不够高,尚不足以保证配置链接服务器时,可使用特殊名称作为表引用。在 Microsoft® SQL Server™ 2000 中,可以使用 OPENROWSET 和 OPENDATASOURCE 函数提供特殊名称。OPENROWSET 和 OPENDATASOURCE 函数都提供特殊连接信息。可以使用这些函数指定访问 OLE DB 数据源所需的全部信息。但是,不可以将 OPENROWSET 和 OPENDATASOURCE 函数互换。当 OLE DB 提供程序通过指定表(或视图)名称或通过指定返回行集的查询返回行集时,可以使用 OPENROWSET 函数。而 OPENROWSET 函数则可以在 Transact-SQL 语句中代替表或视图名称。本示例使用特殊名称从 Microsoft Access 版本的 Northwind 示例数据库中检索数据。
    SELECT *
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'', 
       Customers)仅当提供程序表现行集并 使用 catalog.schema.object 注释时,才可以使用 OPENDATASOURCE。该函数可以在能够使用链接服务器名的 Transact-SQL 语法位置中使用。即,在 catalog.schema.object 注释中,OPENDATASOURCE 可以用作表或视图名称(四部分)的第一部分。-- SELECT from a table on another instance of SQL Server.
    SELECT *
    FROM OPENDATASOURCE(
              'SQLOLEDB',
              'Data Source=ServerName;User ID=MyUID;Password=MyPass'
                       ).Northwind.dbo.Categories只有在特殊情况下(当不可能配置永久链接服务器时)访问外部数据时,才应使用 OPENROWSET 和 OPENDATASOURCE。这两个函数不提供链接服务器中的所有可用功能,如管理登录映射、查询链接服务器元数据的能力和配置各种连接设置(如超时值)的能力。OPENROWSET 和 OPENDATASOURCE 的参数不支持变量。必须将它们指定为字符串字面值。如果需要将变量作为参数传递到这两个函数中,则可以使用 EXEC 语句动态地构造并执行包含这些变量的查询字符串。
      

  2.   

    INSERT INTO tableTO (F1,F2)
    SELECT F01,F02 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source=\..\xxx.mdb;User ID=Admin;Password=')...TableFROM
      

  3.   

    对sqlserver的数据库建一个dsn,然后打开access,选中一个表,右键选择导出,目的选odbc数据源,就可以了!很方便!
      

  4.   

    red9152(red) :能具体一点吗?
    Dim lao As String
      lao = "insert into xx select * from openrowset('Microsoft.jet.oledb.4.0','d:\northwind.mdb','admin','xx')"
    sqlCon.Execute lao我这样写时提示逗号处有错误,请问错误在什么地方?
      

  5.   

    用vb编程实现在sqlserver和access之间进行数据库导入和导出操作Dim adoConnectionX As New ADODB.Connection
    adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;
    Data Source=yuer\psql2k;DataBase=FromExternal"
    adoConnectionX.Execute "INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Da
    ta Source=\..\XXX.mdb')...[YourAccessTable] ([Fld1],[Fld2]) SELECT [Col1],[Col2] 
    FROM [YourSQLTable]" 注意路径问题:
      SQL语句是在服务器端执行!!!!!!!
      路径应该是相对于服务器的!!!!!! 
      

  6.   

    为什么提示在sql语句的逗号处有错误??
      

  7.   

    我想知道怎样将access中的数据导入到sql server中,而不是反过来!!!(access->sql server
      

  8.   

    'admin'后面还有一个输入密码的域,'' 你是不是忘写了。
      

  9.   

    请看我的语句,注意有的地方是冒号,不是逗号。表名不要用引号括起来insert into accttype select * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','d:\myprj\pamis.dat';'admin';'', accttype)