HelloWorld_Hi6 2025-06-09 14:58 采纳率: 85.7%
浏览 6
已结题

Access的query实现方法

请教:
access VBA,表A里有字段A1是学号,表B里有字段B1也是学号、字段B2是各学科名称、字段B3是各科分数,现要建立一个query:A表和B表联动查询,查询结果有两列(学号、不及格有无),“学号”列就是A表的每一个学号,“不及格有无”列就是该学号在B表中的各科分数如有空白值则为“有不及格”。
我想在Access创建查询,能否直接实现上述查询结果(有两列:学号、不及格有无),不通过VBA,怎么实现,谢谢

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-06-09 14:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    Access VBA Query实现方法

    你想实现一个联动查询,查询结果有两列:学号和不及格有无。可以使用Access VBA中的DAO对象来实现。

    首先,创建一个新的Query对象:

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    
    Set db = CurrentDb()
    Set qdf = db.CreateQueryDef()
    
    qdf.Name = "MyQuery"
    qdf.SQL = "SELECT A.A1, IIf(Sum(B3) < 60, '有', '无') AS 不及格有无 " & _
               "FROM A INNER JOIN B ON A.A1 = B.B1 " & _
               "GROUP BY A.A1"
    

    这里,我们使用INNER JOIN将表A和表B联动,然后使用GROUP BY将结果分组。IIf函数用于判断是否有不及格的科目,如果有,则返回‘有’,否则返回‘无’。

    最后,执行查询:

    qdf.Execute dbOpenSnapshot
    

    这样,你就可以使用MyQuery查询结果了。

    注意:这里假设表A和表B的字段名为A1、B1、B2、B3,实际情况中需要根据你的表结构进行修改。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 创建了问题 6月9日