以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于SQL数据转换为本地ACCESS数据的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88811) |
-- 作者:天若千颖 -- 发布时间:2016/8/10 8:28:00 -- 关于SQL数据转换为本地ACCESS数据的问题 但是,直接将ACC2设置成一个数据源(这里面已经有数据),然后将SQL数据库定向到ACC2,或者将SQL数据定向到一个空的ACCESS数据库(这里叫做ACC1),这样能够保证ACC1和ACC2数据结构一样,不同的是ACC2里面有数据,而ACC2只是一个有数据结构的空表。
根据帮助的说法,如果要把远程的SQL数据转换为本地的ACCESS数据,只有一个办法:
1.新建一个本地的ACCESS数据库,设置成项目的数据源。
2.将SQL数据重定向为ACCESS数据,这个时候,ACCESS数据为空。
3.将SQL数据库高速导入到ACCESS中。
这里有一个问题,既然项目重定向之后,使用的都是一个空的ACCESS数据库了,如何将SQL数据再复制到ACCESS中,重定向后SQL数据是关闭了,是需要在重定向前将SQL数据保存为一个本地的ACCESS数据吗?
步骤3过程太繁琐了,首先要打开一个ACCESS中的表,然后找到SQL中和ACCESS同名的数据表导入,如果我的数据有100个表,就要导入100次。
上述步骤有什么地方不对吗?
问题2:通过http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=71500&replyID=&skin=1这个帖子里面的代码,其实已经可以把SQL数据库保存为一个带有主键的ACCESS数据库(这里就叫做ACC2吧),字段名和数据都有(或者直接通过SQL管理工具,导出ACCESS数据也行)。我对比过重定向并高速导入的数据,其结构和数据和根据该贴中的方法导出的数据一模一样。
但是,直接将ACC2设置成一个数据源(这里面已经有数据),然后将SQL数据库定向到ACC2,或者将SQL数据定向到一个空的ACCESS数据库(这里叫做ACC1),这样能够保证ACC1和ACC2数据结构一样,不同的是ACC2里面有数据,而ACC2只是一个有数据结构的空表。
但是,将ACC1替换成ACC2,打开项目的时候,加载缺显示错误,这是为什么呢?两个数据库结构都一样,而且主键也都一样。 此主题相关图片如下:2.png [此贴子已经被作者于2016/8/10 8:38:27编辑过]
|
-- 作者:天若千颖 -- 发布时间:2016/8/10 8:33:00 -- 说简单一点:
如果要把远程的SQL数据转换为本地的ACCESS数据,除了新建一个空白的数据库,然后重定向,再一个表一个表导入之外,有没有什么办法,直接将SQL数据导出成一个既有字段,又有数据的表,然后将项目数据直接重定向到这个表,而不用一个表一个表的再去复制数据。
我的项目中有100个以上的表,怎么复制数据最快? |
-- 作者:大红袍 -- 发布时间:2016/8/10 9:18:00 -- 重定向之前,把sqlserver的每个表保存到一个access数据库里面去;
然后重定向,然后把数据合并到新的数据库取。
只有这种方法。 |
-- 作者:天若千颖 -- 发布时间:2016/8/10 11:27:00 -- 红袍老师,我的SQL中有一些表,只有表结构,没有数据,数据通过窗口加载的时候自动从别的表充填过来,如:
表:自动_QGC_岩心实验数据_Ro统计表,在引用他的窗口AfterLoad事件中
重定向为内部ACCESS数据之后,这个表在ACCESS中有一个空白表,但是打开项目的时候提示:
项目启动之后,所有的这样的表都没有。
而且,错误提示中的“QGC_岩心实验数据_Ro统计表”这个表在我的SQL中也没有,这个是怎么回事?
|
-- 作者:大红袍 -- 发布时间:2016/8/10 11:29:00 -- 你的数据源名称肯定变了啊,fill里面的数据源名称要改成新的。 |
-- 作者:天若千颖 -- 发布时间:2016/8/10 12:57:00 -- 显示有两个数据源名,一个是Local,一个是SQL, 然后显示两个数据源的地址,都是本地的access数据。 因为我的数据源本来有两个,一个是用来储存用户私人的数据,存在本地,另外一个是公共的数据,储存在SQL。
[此贴子已经被作者于2016/8/10 13:25:28编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/8/10 13:08:00 -- 在后面加入,看弹出什么
msgbox(e.name) msgbox(e.ConnectionString) |
-- 作者:天若千颖 -- 发布时间:2016/8/10 13:27:00 -- 显示有两个数据源名,一个是Local,一个是SQL, 然后显示两个数据源的地址,都是本地的access数据。 因为我的数据源本来有两个,一个是用来储存用户私人的数据,存在本地,另外一个是公共的数据,储存在SQL。
|
-- 作者:大红袍 -- 发布时间:2016/8/10 14:47:00 -- 只要数据源正确,存在对应的表,就不可能报错。
上传实例说明问题。 |
-- 作者:天若千颖 -- 发布时间:2016/8/17 16:46:00 -- 红袍老师,您看我1楼中的问题2及图片,既然通过重定向然后合并之后的数据表视图和直接用代码批量保存的一模一样,为什么不能用批量导出的数据库直接替换重定向的呢? 重定向然后高速合并之后的生成的Access文件和通过源码批量生成的文件有什么不一样的地方?
|