Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

查询后台生成表到前台

麥稥  发表于:2012-05-17 17:26:37  
复制

         我想用ADO或者其他的办法,对后台的某个表进行查询,将查询到的数据更新到前台中的临时表里,怎么实现?

         能不能用生成表查询,如 select * into newtable from oldtable,但是 怎么区分这个newtable是属于前台的,oldtable是属于后台数据库的表

         感觉用ADO能办到,但不知道怎么实现?

         望高手指点一二,思路、直接代码也行,先谢过。

 

Top
煮江品茶 发表于:2012-05-17 21:29:25
select * into newtable from oldtable能生成后台数据表?

煮江品茶 发表于:2012-05-17 21:32:00
我想如果不指定地址的话,应该是生成的数据表就在前台。

煮茶论道 发表于:2012-05-17 22:16:59

后台数据通过链接表的形式连接到前台,临时表就建在前台的,不就相当于查询A表的数据,追加到B表,和前后台没有半毛关系,仅仅是表的问题呀。



麥稥 发表于:2012-05-18 08:09:40

     是的,老先生说的没错,连接表的形式能解决从后台数据库里查询从而生成到前台的表里,应该是连接表里自动识别了表所属的数据库

     如select * into newtable from oldtable

       1.如果oldtable是链接的后台表,newtable是新生成的表名  这种情况就通过连接表自动识别了oldtable是其他数据库里的表,进行查询后生成到当前数据库中

       2.如果oldtable是当前数据库的表,newtable是新生成的表名  这里就跟连接表没关系了,也跟后台没关系

 

       我要的效果是 不想通过链接表的形式查询后台表生成新表到前台里,因为链接表的效率不高,我大部分都是用ADO访问进行查询的,我想链接表有上面第一种功能,应该ADO不成问题,而我用ADO主要的障碍就是将查询的数据选择性的存储在前台临时表里。

       其实我最终目的就是在局域网使用拆分前后台的数据库,不通过链接后台表的形式,利用ADO的技术进行前台对后台的高效率的访问。

       也许我的想法不成熟,或者有更好的办法,也请老先生指点一二。



煮江品茶 发表于:2012-05-18 14:39:43

与ADO没什么关系。

docmd.runsql "select * into newtable from oldtable"不就完事了吗?

ADO只是提供数据访问的一种方法,你访问newtable(是不是用ADO访问都没什么关系)就可以了。

Access中的ADO好像没有提供断开的数据集功能(据说也可以实现,但比较麻烦),用VB.NET倒是可以实现断开的数据集,也就是将后台数据读入到客户端,在客户端断开连接进行操作,数据集发生变化后再连接数据库将更新后的数据集写入后台。即使这个技术(以及前述的用生成表查询导入一个实体的数据表),都与前后台连接的效率相关。所以如果仅仅是一个单机版的小系统,大可不必划分前后台,直接在一个Access文件中处理即可,导来导去没什么意义和价值。



放弃 发表于:2012-07-22 15:42:07

好久没搞了。这个问题只有像我才遇到过。因为我们的前台库和后台库不是通过“拆分”的方法将原来的ACCESS库一分为二的,其连接是通过:

Dim MYDATA As String
    MYDATA = "Provider = 'MICROSOFT.JET.OLEDB.4.0';DATA SOURCE='\\服务器名\文件名\后台库名.mdb';USER ID='ADMIN';PASSWORD='';"
Set CNN = New ADODB.Connection  
  CNN.Open MYDATA

当然在同一机上就不必需服务器名了。

只有先运行该程序才能将两个库连接起来(不像拆分后就能自动连接直接使用)。前台调用后台数据的方法是应用“复制”手段,让我们应用ADO吧:

Set Rs1 = New ADODB.Recordset
    MYSQL = "Select * From 后台表名"
    Rs1.Open MYSQL, CNN, adOpenKeyset, adLockOptimistic
  Set Rs11 = New ADODB.Recordset
    MYSQL = "Select * From 前台表名"
    Rs11.Open MYSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

然后可将后台一表中条件记录逐一复制到前台一表中

N = Rs1.Fields.Count
  Rs1.MoveFirst
   For I = 0 To Rs1.RecordCount - 1

........

请指正!

 

 

 



总记录:6篇  页次:1/1 9 1 :