Office中国论坛/Access中国论坛

标题: 请教,表中的数据如何叠加(Command0_Click()又有新问题) [打印本页]

作者: lrawinx    时间: 2006-4-13 01:52
标题: 请教,表中的数据如何叠加(Command0_Click()又有新问题)
有3个表

我想在窗体中设计一个按钮使表1和表2的数据叠加为表3的样式

请教该如何写代码

表的样式如下:

=======================

表1

-------------------------------------

班级编号   课程标号

001          AAA

001          BBB

002          CCC

002          AAA

=======================

表2

-------------------------------------

班级编号   学号

001         111

001         222

001         333

002         444

002         555

002         666

=======================

表3

-------------------------------------

学号     课程编号   班级编号    成绩

111        AAA       001

111        BBB       001

222        AAA       001

222        BBB       001

333        AAA       001

333        BBB       001

444        CCC       002

444        AAA       002

555        CCC       002

555        AAA       002

666        CCC       002

666        AAA       002

=======================

[此贴子已经被作者于2006-4-13 22:09:17编辑过]


作者: fan0217    时间: 2006-4-13 01:58
用班级编号在两表间建立关系,然后建立个查询实现.
作者: lrawinx    时间: 2006-4-13 02:13
斑竹,我想要的是可以输入并记录“表3”中“成绩”数据的表哦

查询表不能做到吧。。?
作者: fan0217    时间: 2006-4-13 02:15
你的例子呢


作者: lrawinx    时间: 2006-4-13 02:23
这个

[attach]17063[/attach]

帮我解决一下,谢了啊
作者: fan0217    时间: 2006-4-13 02:32
SELECT 班级学生.学号, 成绩表.课程编号, 班级学生.班级编号, 成绩表.成绩
FROM (班级课表 INNER JOIN 班级学生 ON 班级课表.班级编号 = 班级学生.班级编号) INNER JOIN 成绩表 ON (班级学生.学号 = 成绩表.学号) AND (班级课表.课程编号 = 成绩表.课程编号);

作者: lrawinx    时间: 2006-4-13 02:41
添加了成绩查询后

查询表里就什么信息都没有了啊


作者: fan0217    时间: 2006-4-13 02:48
因为你的成绩表是空的啊,没有记录.
作者: lrawinx    时间: 2006-4-13 04:22
晕,我的意思你没明白

我是想通过一个按钮来生成“成绩表”中的数据

我在帖子主题内容里就说了啊

并不是为了查询
作者: fan0217    时间: 2006-4-13 04:27
你想把成绩表的数据做怎样的处理???
作者: lrawinx    时间: 2006-4-13 04:35
形式和做出来的查询表一样

只不过表里多了“成绩”这一条

我能填写成绩分数在里面
作者: fan0217    时间: 2006-4-13 04:39
直接在你的成绩表里填入数据不一样吗?再通过查询来实现你想得到的目的.
作者: lrawinx    时间: 2006-4-13 04:44
- -!

那我不是要一个个的挨着手动填写“成绩表”了

班级和学生,还有每个班的课程

这些数据加起来不少的啊,一个学校的人哦
作者: fan0217    时间: 2006-4-13 04:48
难道你能用什么方法自动填入,成绩难道是一样的或有什么规律???
作者: lrawinx    时间: 2006-4-13 04:58
成绩倒不是自动填入

是学生考试出成绩后再写入的

一个班级,有多少门课,那个班的学生就有多少门课

所以“成绩表”里要事先记录所有学生的每一门课程
作者: fan0217    时间: 2006-4-13 05:00
你的意思是事先有个没有填入成绩的空表,成绩出来了直接填入吧,用追加查询.
作者: lrawinx    时间: 2006-4-13 05:07
恩,是的,但追加查询怎么使用呢。。。
作者: lrawinx    时间: 2006-4-13 05:31
那个表就不能做出来吗?
作者: 一点通    时间: 2006-4-13 06:34
你这个问题最终还是这个问题,创建一个追加查询就行了

http://www.office-cn.net/forum.php?mod=viewthread&tid=38669&extra=&page=1#38669
作者: lrawinx    时间: 2006-4-13 09:05
哦,终于发现是我脑筋不够灵活了

多谢,我先套用到系统中试试
作者: lrawinx    时间: 2006-4-13 09:20
还有一个问题啊,考虑到班级,学生,课程信息会随时更新

能否做到每打开一次追加查询时不重复添加数据呢,并且原有的数据不会改动
作者: xinrenq    时间: 2006-4-13 17:03
SELECT 查询1.*, 成绩表.成绩
FROM 成绩表 RIGHT JOIN [SELECT 班级课表.*, 班级学生.学号
FROM 班级课表 INNER JOIN 班级学生 ON 班级课表.班级编号 = 班级学生.班级编号]. AS 查询1 ON (成绩表.课程编号=查询1.课程编号) AND (成绩表.学号=查询1.学号);


试试看。。。
作者: lrawinx    时间: 2006-4-14 03:43
虽然可以看到数据如预期的排列



查询表不能写入数据的吧

哎,这个问题缠我几天了
作者: lrawinx    时间: 2006-4-14 03:44
使用追加查询的话,看来只能一次性添加完全数据再进行追加查询了
作者: fan0217    时间: 2006-4-14 04:10
生成按钮事件:单击后查看成绩表.

Private Sub Command0_Click()
Dim con As New ADODB.Connection
Dim strSQL As String

Set con = CurrentProject.Connection
    strSQL = "INSERT INTO 成绩表 ( 学号, 课程编号, 班级编号 ) "
    strSQL = strSQL & "SELECT 班级学生.学号, 班级课表.课程编号, 班级学生.班级编号 "
    strSQL = strSQL & "FROM 班级课表 INNER JOIN 班级学生 ON 班级课表.班级编号 = 班级学生.班级编号;"

    con.Execute strSQL  

MsgBox "生成成功!"

Set con = Nothing
End Sub
作者: lrawinx    时间: 2006-4-14 05:29
恩,就是要的这个,多谢了
作者: fan0217    时间: 2006-4-14 05:43
你没有表达清楚问题,绕了个大弯子.这样的问题最好结合示例,在进行详细说明才好让人明白.

[此贴子已经被作者于2006-4-13 21:42:53编辑过]


作者: lrawinx    时间: 2006-4-14 06:08
一个新的问题。。。

每触发一次这个事件

表中就会重复添加已有的数据

能不能做到在不重复添加的条件下加入新的数据

并保留以前的数据



比如我生成表并填写了成绩后

在班级课表中或班级学生表中又有新增加或删除的数据

怎样做到不重复生成成绩表里的数据并且保留成绩表已填写成绩了的数据?

可以做到这个效果吗?


作者: lrawinx    时间: 2006-4-14 06:10
以下是引用fan0217在2006-4-13 21:43:00的发言:
你没有表达清楚问题,绕了个大弯子.这样的问题最好结合示例,在进行详细说明才好让人明白.

真是抱歉[em04]
作者: panyifan    时间: 2006-10-10 17:04
kkkkkkkkkkkkkkkkkkkkkkkk




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3