procedure TfrmMain.Button1Click(Sender: TObject);
  var
  sqlstr:string;
begin
  sqlstr:='insert into user select * from OPENDATASOURCE(''SQLOLEDB'',''Data Source=169.254.155.7,1433;User ID=sa;Password=sa'').wordbook.dbo.User';  
  //ADOConnection1 连接本地 Access 数据库   错误:From 字语句语法错误 
  with DM do
  begin
    Query_Question.Close;
    Query_Question.SQL.Clear;
    Query_Question.SQL.Add(sqlstr);
    Query_Question.Prepared;
    Query_Question.ExecSQL;
  end;
end;我要将远程数据表User 数据整批写入本地Access 数据库user 表中怎么实现呢? 
 sqlstr:='insert into OpenRowSet(''microsoft.jet.oledb.4.0'','';database=D:/ming/user.mdb;uid=sa;pwd=user'',''select * from  user) select  * from user;
 //ADOConnection1 连接本机上的 SQL 数据库 (可行), 但ADOConnection1 连接远程SQL数据 就找不到Access  数据库路径。
有什么好的办法解决这问题吗?

解决方案 »

  1.   

    尝试将 Access 文件所在的目录共享,并且可以写,然后修改一下连接串看看。sqlstr:='insert into OpenRowSet(''microsoft.jet.oledb.4.0'','';database=\\mycomputer\ming\user.mdb;uid=sa;pwd=user'',''select * from  user) select  * from user;
      

  2.   

    用另外一种方式呢,中转下,把远程的数据采集存储到本地,可以存储到本地的sqlserver中或者保存为有规律格式的文本,然后在插入到access中
      

  3.   

    Rubi(浪迹Csdn各个板块!Borland-MS-IBM-SUN-水区) 
    你的方法可行,但客户不一定装了SQL
    还有 CloneCenter(复制中心) 的思维方式有道理,但是本地的机器是局域网Ip,也找不到地址呢
      

  4.   

    不如用ODBC吧,自己建个DSN连接,再共享文件
      

  5.   

    INSERT TB SELECT * FROM [ODBC;Driver=SQL Server;Server=169.254.155.7;database=wordbook].user
      

  6.   

    这样,只要客户端安装msde,就可以把采集来的数据存为文本,然后在读取到access中,这可行
      

  7.   

    其实, 最好的方法就是在Access中建立一个链接表(Link Table)
      

  8.   

    frankzhenglei(小白鸽) Thank you !