设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 4359|回复: 23
打印 上一主题 下一主题

[窗体] 用SQL语言怎么将结果展示在窗体的文本框中

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-21 12:43:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前我正在用的是先建一个查询,然后用查询创建一个子窗体,在把子窗体拖到窗体里。

另外一种方法就是用Dlookup。

目前我发现的困难就是用子窗体太麻烦了,不方便。

用Dlookup需要太长的参数,表达起来很麻烦

我就想用Sql语言在VBA里写,然后将SELECT结果直接展示在文本框中,这样查询代码清晰,也好维护。

但我不知道该怎么在VBA里实现,或者说VBA代码该怎么写才能达到这样的效果。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-12-21 12:55:52 | 只看该作者
不知所云
3#
 楼主| 发表于 2010-12-21 13:09:32 | 只看该作者
todaynew 发表于 2010-12-21 12:55
不知所云

我确实表达不太清楚,我主要想表达的意思就是:

我需要在窗体文本框1中输入数字,在文本框2中显示计算结果。

中间计算需要几个变量,这几个变量是存在2个参数表里的,而且变量内容是要根据文本框1中输入的不同数字进行匹配的。

我现在的方法是 第一步:先用Dlookup将1个参数表相应字段取出来。
                          第二步:建立一个查询,在查询里取另一个参数表的字段,然后将文本框1与所有变量计算。
                          第三步:将查询建立一个子窗体,放到主窗体里。

我希望的想法是不用子窗体,就能直接将结果显示在文本框中。
另外因为用DLookUP需要的参数太长,而且不便于计算过程的展示,我想能不能在窗体的代码里使用SQL语言直接进行计算
4#
发表于 2010-12-21 13:15:24 | 只看该作者
说不明白时,最好的方法就是上传你的实例,然后依据实例描述问题。
5#
 楼主| 发表于 2010-12-21 13:15:43 | 只看该作者
我还有另外一个问题,和上述问题有一定相关性。

我在窗体里有N各输入框,同时对应着N各结果框。

所有计算过程都是一样的,如果用子窗体,只能建立N各查询,然后每个查询建立一个子窗体,然后再放到主窗体里,能不能有类似可变参数或者宏的功能来完成这个工作。

也就是说我只有一个查询,N各查询使用一个查询,然后输出各自的结果。
6#
 楼主| 发表于 2010-12-21 13:26:34 | 只看该作者
我的窗体里叫“测试1”就是主窗体。

里面放了3个子窗体,每个子窗体都是用查询创建的。

我想知道不用子窗体怎么能达到这个效果。

还就是我工资 和 奖金的算法其实是一样的,可是如果要同时显示2个,我只能建两个查询,然后弄两个子窗体。

我想知道怎么能不用子窗体,用一个查询或者不用查询,直接在窗体里用代码实现。

本帖子中包含更多资源

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

x
7#
发表于 2010-12-21 13:37:59 | 只看该作者
cao_yin 发表于 2010-12-21 13:26
我的窗体里叫“测试1”就是主窗体。

里面放了3个子窗体,每个子窗体都是用查询创建的。

附件好像有毛病,不可识别。是不是07版或者10版?最好用03版上传实例。
8#
 楼主| 发表于 2010-12-21 13:39:44 | 只看该作者
本帖最后由 cao_yin 于 2010-12-21 13:45 编辑
todaynew 发表于 2010-12-21 13:37
附件好像有毛病,不可识别。是不是07版或者10版?最好用03版上传实例。


不好意思,单位电脑文档自动加密了,已经解密了,谢谢阿

本帖子中包含更多资源

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

x
9#
发表于 2010-12-21 15:57:58 | 只看该作者
cao_yin 发表于 2010-12-21 13:39
不好意思,单位电脑文档自动加密了,已经解密了,谢谢阿





如果算式不对,可直接修改下列程序中的算式:
Sub 计算()
Dim i As Long
If IsNull(Me.城市ID.Value) = False And IsNull(Me.工资收入.Value) = False And IsNull(Me.奖金收入.Value) = False Then
    Me.应税收入.Value = (Val(Me.工资收入.Value) + Val(Me.奖金收入.Value)) * (1 - Val(Me.城市ID.Column(4))) - Me.城市ID.Column(3)
    For i = 1 To Me.税率.ListCount - 1
        If Val(Me.应税收入.Value) >= Val(Me.税率.Column(1, i)) And Val(Me.应税收入.Value) <= Val(Me.税率.Column(2, i)) Then
            Me.税率.Value = Me.税率.Column(0, i)
            Exit For
        End If
    Next
    Me.应交税金.Value = Me.应税收入.Value * Me.税率.Column(3) - Me.税率.Column(4)
    Me.税后收入.Value = Val(Me.工资收入.Value) + Val(Me.奖金收入.Value) - Val(Me.应交税金.Value)
End If
End Sub

本帖子中包含更多资源

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

x
10#
 楼主| 发表于 2010-12-21 22:11:12 | 只看该作者
回复 todaynew 的帖子

非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-22 05:33 , Processed in 0.168628 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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