设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1301|回复: 3
打印 上一主题 下一主题

[查询] 请问怎么样实现子窗体查询唯一值?

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-18 05:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么样才可以使用代码来得到查询的结果!

用文本框查询,在子窗体得到查询结果,已经可以实现,但是加深的查询就没有办法,比如子窗体返回查询结果的字段A,B,C,D,E其中C为日期型,其他都为字符型,现在想实现查询结果是,文本框输入A字段的值,当结果有两个以上的,就用C来判断,得到最终的结果,麻烦大家帮忙想想办法。

数据表

A          B              C                  D               E

1          1111         2007-3-5     QQQ         DDDD

2          2222         2007-5-8     QQQ         DDDD

1          1122         2007-3-8     QQQ         DDDD

希望得到的结果,通过代码判断(得到最后的日期的那条记录),在子窗体出现

1          1122         2007-3-8     QQQ         DDDD

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-6-18 06:51:00 | 只看该作者
用日期排序,取第一条或最后一条(看是正序还是倒序了)。

查询的A字段的条件是:forms![查询窗体].[文本框],requery子窗体。

我的一般做法是:

1、子窗体的记录源不写过滤条件。

2、主窗体(写子窗体的记录源,这样子窗体显示是空的,好看点)

Private Sub Form_Open(Cancel As Integer)
    Dim str As String
   
    str = "select * from findAsub查询 where 1=2"
   
    Me.Findsub.Form.RecordSource = str
   

End Sub

3、在弹出的窗体选择输入查询条件(这样可以多条件组合查询,免得主窗体控件太多,界面不清爽),更新子窗体。并有报表可以打印输出查到的内容。

查询条件窗体:


Private Sub cmdFind_Click()
On Error GoTo Err_cmdFind_Click

    Dim str As String
   
    If Not IsNull(Me.器械ID) Then
        str = str & " and 器械ID=" & Me.器械ID
    End If
        
    If Not IsNull(Me.器械类别ID) Then
        str = str & " and 器械类别ID=" & Me.器械类别ID
    End If
   
    If Not IsNull(Me.日期起) Then
        str = str & " and 有效期 between #1970-01-01# and #" & Me.日期起 & "#"
    End If
            
    If str <> "" Then
            str = "select * from findAsub查询 where " & Mid(str, 6)
        
            Forms![frmfindA].Findsub.Form.RecordSource = str
            Forms![frmfindA].Text22.Requery
            Forms![frmfindA].Text33.Requery
            Forms![frmfindA].Text35 = str
    End If
   
    DoCmd.Close

Exit_cmdFind_Click:
    Exit Sub

Err_cmdFind_Click:
    MsgBox Err.Description
    Resume Exit_cmdFind_Click
   
End Sub
说明:text35是主窗体的不可见的文本框(就是子窗体的记录源),给报表提供数据源。





[此贴子已经被作者于2007-6-17 22:53:38编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2007-6-18 20:11:00 | 只看该作者
谢谢TZ-CHF的回答,好像按你说的办法,我还要在日期的查询框那里填些具体的时间 才能得到我想要的结果。

我的本意是查询A字段就能得到最后那个日期的记录,不需要填写日期框的内容来查询。

4#
发表于 2007-9-14 13:59:35 | 只看该作者
学学好好学习一下.谢谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-5 18:38 , Processed in 0.073838 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表