问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Access数据库合并。

发布网友 发布时间:2022-04-28 23:29

我来回答

3个回答

懂视网 时间:2022-05-04 05:30

最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了 数据库 设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题: 现有表: G(GID, abID,AID, BID) A(AID, ANAME) B(BID, BNAME) S(SID, SNAME) AB(abID, SID, C

最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了数据库设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题:

现有表:

G(GID, abID, AID, BID)

A(AID, ANAME)

B(BID, BNAME)

S(SID, SNAME)

AB(abID, SID, Content)

其中表S是用来存储类别的,现在想通过数据库查询返回如下结果

ANAME BNAME S1NAME S2NAME ...... SnNAME(S表中的类别,内容为对应的Content值)

原先老系统的做法是对于S中的类型建立n张表存储,但是这样不便于扩展,现在为了适应S类别动态增加的要求,就改为数据库存储类别的方式,但是这样的做法带来了问题,首先就是如何将一个表(AB)中的不同SID的数据划分为单独的列,并且在一次查询中取出显示在一个视图当中。

仔细想了一下只能使用查询连接(JOIN)的方法,必须构造如下的语句:

select g.GID, a.ANAME as aName , b.BNAME as bName ---固定语句1
, ab1.Content as S1NAME , ab2.Content as S2NAME , ab3.Content as S3NAME ---构造语句1


from ---固定语句2
(((((G g left JOIN A a ON g.AID = a.AID) ---构造语句2
left JOIN B b ON (g.BID = b.BID)) ---固定语句3


left JOIN AB ab1 ON (g.abID = ab1.abID and ab1.SID = S1)) ---构造语句3
left JOIN AB ab2 ON (g.abID = ab2.abID and ab2.SID = S2)) ---构造语句4

left JOIN AB ab3 ON (g.abID = ab3.abID and ab3.SID = S3)) ---构造语句5

where 其他限制条件 ---其他语句

此语句用到了多表的LEFT JOIN连接;

想要达到检索目标就必须通过程序构造如以上的SQL语句,本人的心得如下,将以上SQL语句分段固定语句1-3以及其他语句可以先行写好;

构造语句

1.利用循环将S表中的所有类别(包括SID及SNAME)查询出来放入DATASET中,并将查询结果数目作为循环次数值

2.每次循环构造

“构造语句1” --- 按照格式将查询出的数据从DATASET中取出填上

“构造语句2” --- 在((G g left JOIN A a ON g.AID = a.AID)基础上每次在前添加"("

"构造语句3-5" --- 根据格式填写,数量即为循环次数

最后按照顺序将所有语句连接起来即可构成所求SQL语句

本文主要采用例子的形式介绍了根据数据库记录动态进行查询连接的方法,应用时可以根据需要进行调整,不过应该注意以下几点:

1.分段语句的两头最好留下空格,即:" " + subString + " "以免最后构成SQL语句时出现错误

2.ACCESS采用J-SQL在多表查询连接时必须注意括号的用法,这就是"构造语句2"生成的原理,括号必须一层嵌套一层,可以在连接好的SQL语句中看出层次关系。

热心网友 时间:2022-05-04 02:38

如想将两个ACCESS数据库合并(如将数据库A的表A1加入到数据B的表B1)可以采用以下简单的方法和步骤:
1.先在B数据库中采用导入数据的方法将A1导入到B数据库中
2.对B数据库执行以下SQL语句将A1表中的数据加入到B1中
insert
into
B1
SELECT
*
FROM
A1
我试过是完全可行的,
如果还有困难的话,我可以将我编的一段专门用来更新数据库的VB程序发给你用,不过要你的电脑上装有VB6.0才成

热心网友 时间:2022-05-04 03:56

问题:连接两台机器上的数据库,是两台都装ODBC吗?然后怎么办?怎么操作配置?
关于
一、如果是同一台机器上,可以使用如下两种方式访问另一个MDB:
(1)其中表名是在db2中的表名
SELECT
*
from
表名
in
'C:\db2.mdb'
(2)其中表名是在db2中的表名
select
*
from
[;database=C:\db2.mdb].表名
追加到本机的另一个MDB中:
insert
into
目标MDB的表名(字段列表)
in
'C:\db2.mdb'
select
字段列表
from
当前MDB的表名

insert
into
[;database=C:\db2.mdb].目标MDB的表名(字段列表)
select
字段列表
from
当前MDB的表名
二、如果访问另一台机器上的MDB,可以使用链接表、传递查询、或直接用SQL:
(1)使用链接表时,建议使用文件数据源创建链接表,与机器无关,拷贝到别的机器上可以直接使用,无须再手工或用代码创建ODBC。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美的燃气热水器12升电脑版显示FR一pH一PL一dH一nE一qU怎么调好_百度知... 热水器ph什么意思 上海工程技术大学公共管理专业是什么学院 公共事业管理在暨南大学中属于哪个学院? 中央财经大学公共事业管理学生就业去向都有哪些 中飞院公共事业管理是什么专业 广西医科大学公共事业管理属于哪个学院 抖音怎么发视频@抖音小助手 发视频@抖音小助手操作一览 轻颜相机怎么取消自动续费 取消自动续费教程 轻颜相机vip怎么取消 access 数据库合并 两个mdb合成一个 按照相同的字段 acces mdb数据库合并 有什么合并工具 天津82中学邮政编码是多少? arcgis怎样将多个MDB快速简单的合并拆分 沈阳第82中学地址在哪?我在沈阳工业大学,坐什么公交车能到?谢谢!! 魔兽大脚怎样绑定角色啊 我上游戏退出游戏没提醒 天津河东区82中学怎么样 arcgis中怎样把两个MDB文件合并到一起(批量) 有两个ACCESS文件分别是1.mdb、2.mdb,它们里面都有相同的表名为info,如何把各1.mdb合并到2.mdb?? "天津市第82中学"---英文怎么翻译? 我有很多MDB文件,如何这些文件中的数据统一放到一个文件里,(表头完全相同)。 天津市第82中学高中有男生足球队吗? 怎么从天津大学到天津市第82中学大桥南道1号 arcgis如何合并1:10000分幅地形图mdb格式数据库 用vb 或是别的方法、把access多个mdb文件、其中的表名和字段名完全一样、如何合并成一个md 从82中学到天津医科大学的公交车 合并多个ACCESS数据库数据的方法 天津82中学高中好么? 梦见突然有一份很稳定的工作,别人都很羡慕我,还有我还穿了一套蓝颜色的衣服,还有蓝颜色的帽子 ArcGIS中如何进行mdb数据的合并? VB 如何合并 多个mdb或者accdb文件? 如何两个MDB数据库合并 两个点个系统的mdb数据库基础数据不1样有办法合并?? 将一个Access数据库中多表的数据导入(合并到)另一个Access数据库的相应... Access同一数据库两张表结构相同,记录如何合并? 防己2克,车前子3克生黄芪4克加在一起的作用治疗什么 请教SQL语句将两个不同MDB数据库中表的内容按关键字合并之一的数据库中 柴胡桂枝白芍枳士壳川芎桃仁薏苡仁茯苓防己炙甘草党参当归这副中药的功效与作用是什么 农村名叫“泽兰”的植物,有什么功效和作用? 二十七式杨式太极拳下载口令版 一句经典语录缩成一个网名 用三毛的语录做网名 三叉苦泡酒的功效与作用 杨式太极拳27式 详细视频(有文字解说) 在word中如何设置空白页码? 这六幅图隐藏了六个自字开头的成语,求!我只知道第一个是自卖自夸 有什么经典话语最好四个字的,做网名。 一个图片上画着一个男孩被男人玩一个好苦啊,是什么四字成语? 情感语录的名字怎么起? 吴阿敏27式有口令的太极拳