考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:编程开发 > ACCESS > 文章内容
  

Access教程:Access使用查询

 [ 2017年9月7日 ] 【

  Access各种查询代码

  相关搜索: 查询

  ACCESS查询分段统计人数

  这样一个表 tblScore:

  班级 姓名 总分 语文 数学

  1班 a 601 108 120

  2班 b 589 112 133

  3班 C 551 98 145

  2班 D 502 80 124

  1班 E 508 90 85

  3班 F 561 97 135

  TRANSFORM Count(tblScore.总分) AS 总分OfCount

  Select tblScore.班级

  FROM tblScore

  GROUP BY tblScore.班级

  PIVOT Switch([总分]>=600,">=600",[总分]>=550 And [总分]<600,"550-599",[总分]>=500 And [总分]<550,"500-549",True,"Other") In (">=600","550-599","500-549","Other");

  可得到第一個查詢

  班级总分600分以上人数 总分550-600人数 总分550以下人数

  1班 1 0 1

  2班 0 1 1

  3班 0 2 0

  (二)用代码在ACCESS中生成永久查询

  dim strSQL as string

  dim qdf as QueryDef

  strSQL = "Select * from tblaa" 'tblaa为表

  Set qdf = CurrentDb.CreateQueryDef("创建的查询", strSQL)

  DoCmd.OpenQuery qdf.Name

  用代码删除一个已存在的查询

  Dim Query1 As QueryDef

  CurrentDb.QueryDefs.Refresh

  For Each Query1 In CurrentDb.QueryDefs

  If Query1.Name = "想要删除的查询名称" Then

  CurrentDb.QueryDefs.Delete Query1.Name

  Exit For

  End If

  Next Query1

  (三)使用ADO和SQL语句建立一个新查询

  Dim cat As New ADOX.Catalog

  Dim cmd As New ADODB.Command

  Set cat.ActiveConnection = CurrentProject.Connection

  cmd.CommandText = "Select * FROM 表1"

  cat.Views.Append "newView", cmd

  以窗体的文体框为条件进行模糊查询时查询的设计视图中准则:

  Like IIf(IsNull([Forms]![存书查询窗体]![作者]),'*','*' & [Forms]![存书查询窗体]![作者] & '*')

  (四)用VBA代码生成一个条件组合的字符串作为子窗体的窗体筛选的条件来实现窗体的多条件查询。

  Option Compare Database

  '==================================

  '

  '由浅入深的介绍几种最常用的利用主/子窗体来实现查询的方法,

  '使初学者和有一定VBA基础的人可以更好的使用窗体查询这种手段。

  '

  '本例程是讲解用VBA代码生成一个条件组合的字符串作为子窗体的

  '窗体筛选的条件来实现窗体的多条件查询。

  Private Sub cmd查询_Click()

  On Error GoTo Err_cmd查询_Click

  Dim strWhere As String '定义条件字符串

  strWhere = "" '设定初始值-空字符串

  '判断【书名】条件是否有输入的值

  If Not IsNull(Me.书名) Then

  '有输入

  strWhere = strWhere & "([书名] like '*" & Me.书名 & "*') AND "

  End If

  '判断【类别】条件是否有输入的值

  If Not IsNull(Me.类别) Then

  '有输入

  strWhere = strWhere & "([类别] like '" & Me.类别 & "') AND "

  End If

  '判断【作者】条件是否有输入的值

  If Not IsNull(Me.作者) Then

  '有输入

  strWhere = strWhere & "([作者] like '*" & Me.作者 & "*') AND "

  End If

  '判断【出版社】条件是否有输入的值

  If Not IsNull(Me.出版社) Then

  '有输入

  strWhere = strWhere & "([出版社] like '" & Me.出版社 & "') AND "

  End If

  '判断【单价】条件是否有输入的值,由于有【单价开始】【单价截止】两个文本框

  '所以要分开来考虑

  If Not IsNull(Me.单价开始) Then

  '【单价开始】有输入

  strWhere = strWhere & "([单价] >= " & Me.单价开始 & ") AND "

  End If

  If Not IsNull(Me.单价截止) Then

  '【单价截止】有输入

  strWhere = strWhere & "([单价] <= " & Me.单价截止 & ") AND "

  End If

  '判断【进书日期】条件是否有输入的值,由于有【进书日期开始】【进书日期截止】两个文本框

  '所以要分开来考虑

  If Not IsNull(Me.进书日期开始) Then

  '【进书日期开始】有输入

  strWhere = strWhere & "([进书日期] >= #" & Format(Me.进书日期开始, "yyyy-mm-dd") & "#) AND "

  End If

  If Not IsNull(Me.进书日期截止) Then

  '【进书日期截止】有输入

  strWhere = strWhere & "([进书日期] <= #" & Format(Me.进书日期截止, "yyyy-mm-dd") & "#) AND "

  End If

  '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,

  '要用LEFT函数截掉这5个字符。

  If Len(strWhere) > 0 Then

  '有输入条件

  strWhere = Left(strWhere, Len(strWhere) - 5)

首页 1 2 3 4 尾页
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved