各位大侠高手,想让各位帮我解决这个问题。
我客户端有一access数据库,里面有N个表,现在我想将该数据库中的数据导入到我的服务器上MySQL数据库中,在VB6中请问用sql语句如何实现?请注意,我问的是用sql语句呀,另外,答案是使用第三方工具或先导出文本再导入MySQL中的免谈了。逐条添加我已经会了(addnew方法),也不用再说了。
最好能教我用insert……into……如何实现?或select……into……如何实现?再有就是我的服务器MySQL版本是5.1
请各位大侠指教,十分感谢!

解决方案 »

  1.   

    首先你需要安装MYSQL ODBC的驱动。如果这个属性免谈的范围,那就没办法只用SQL语句侄入了。
      

  2.   

    1、必须安装 MYSQL ODBC驱动,并连接好,有相应权限;
    2、用JETSQL可以直接导入,注意两个数据库字段类型、长度等等方面r的区别 。
      

  3.   

    老大,这些初始工作我早就做好了,包括addnew方法我都已实现了,现在急需的就是需要使用ado语句直接导入方法,来点代码呀。
      

  4.   

    在ACCESS中创建MYSQL ODBC的链接表, 然后直接 insert into linkMysqlTable select * from accessTable
      

  5.   

    ado连接MDB:
    SELECT * INTO t4 IN ODBC[ODBC;Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=tmp;USER=root;Pwd=123;]
    FROM [;database=r:\temp\123.mdb].T4;
      

  6.   

    请问wwwwb,上面这条语句改成insert into语句也可以吗?
    INSERT INTO t4 IN ODBC[ODBC;Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=tmp;USER=root;Pwd=123;]
    SELECT * FROM [;database=r:\temp\123.mdb].T4;
      

  7.   

    可以,注意字段类型、长度在两种数据库中的差别,特殊字段用代码导入INSERT INTO [ODBC;Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=tmp;USER=root;Pwd=123;].t4
    SELECT * FROM [;database=r:\temp\123.mdb].T4;
      

  8.   

    wwwwb,您好
    这是我的SQL语句:
    tmpstr1="insert into [ODBC;Driver={MySQL ODBC 5.1 Driver};Server=192.168.60.22;Port=3306;Database=test01;USER=zht;Pwd=aaa;].table_name select * from [;database=z:\data123.mdb].table_name"
    这里192.168.60.22是我MySQL服务器的IP地址,事先我已经建了一个ODBC数据源。
    我事先声明了:
    dim con as new Connection
    drim rs as new Recorderset
    con.open "这里填写的是与数据源连接的语句"
    rs.open tmpstr1,con,1,3
    上面的运行语句是否有错误?
    运行后错误提示:
    实时错误‘-2147217900(80040e14)’:
    [MySQL][ODBC MySQL ODBC 5.1 Driver][mysqld-5.1.37-ubuntu5.4]You have an error in your SQL syntax:check the manual that corresponds to your MySQL server version for the right syntax 
    to use near '[ODBC;Driver={MySQL ODBC 5.1 Driver};Server=192.168.60.22;Port=3306;
    Database=test01;USER=zht;Pwd=aaa;] at line 1
    这是说我的MySQL版本不对吗,但我安装的确实是5.1版本的呀。
    请wwwwb指教,谢谢!
      

  9.   

    你的ADO连接的是MDB?
    7楼已经说过 :ado连接MDB:
    完整代码贴出来
      

  10.   

    tmpstr1="insert into [ODBC;Driver={MySQL ODBC 5.1 Driver};Server=192.168.60.22;Port=3306;Database=test01;USER=zht;Pwd=aaa;].table_name select * from [;database=z:\data123.mdb].table_name"
    建议贴出你的原SQL语句,如果你已经连接了当前的MDB数据库(注意不是去连MYSQL),则tmpstr1="insert into [ODBC;Driver={MySQL ODBC 5.1 Driver};Server=192.168.60.22;Port=3306;Database=test01;USER=zht;Pwd=aaa;].mysql_table_name select * from access_table_name"
      

  11.   

    谢谢acmain,我终于测试成功了。但这句话[如果你已经连接了当前的MDB数据库(注意不是去连MYSQL)],难道只允许事先连接access数据库吗,不允许连MYSQL数据库吗?换句话说,[ODBC;Driver={MySQL ODBC 5.1 Driver};Server=192.168.60.22;Port=3306;Database=test01;USER=zht;Pwd=aaa;]是必须得带的吗?谢谢
      

  12.   

    注意 用的是JETSQL,可以连接MDB、EXCEL、TXT文件
      

  13.   

    也谢谢aaaa,先问一下,你和wwwwb是什么关系 呀?哦,你说的对。但我还是要问一下,我先用ODBC连接MySQL也不行吗?其实我主要就是不明白,为什么非得MySQL数据表前需要带一大串[连接语句],去掉不可以吗?比如写成:
    insert into MySQL的数据表名 select * from access的数据表名
    当然我事先建立MySQL的连接。我只是这么一问,是否可以行的通?
      

  14.   

    已经说过 ,只有JETSQL支持这种写法,MYSQL的SQL语句不支持insert into MySQL的数据表名 select * from access的数据表名
    当然我事先建立MySQL的连接。我只是这么一问,是否可以行的通?
    不能,MYSQL的SQL语句没有这种语法