设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

另外一种方法就是用Dlookup。

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

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

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

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

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

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

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

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

我希望的想法是不用子窗体,就能直接将结果显示在文本框中。
另外因为用DLookUP需要的参数太长,而且不便于计算过程的展示,我想能不能在窗体的代码里使用SQL语言直接进行计算
3#
 楼主| 发表于 2010-12-21 13:15:43 | 显示全部楼层
我还有另外一个问题,和上述问题有一定相关性。

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

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

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

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

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

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

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

本帖子中包含更多资源

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

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


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

本帖子中包含更多资源

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

x
6#
 楼主| 发表于 2010-12-21 22:11:12 | 显示全部楼层
回复 todaynew 的帖子

非常感谢
7#
 楼主| 发表于 2010-12-21 22:53:42 | 显示全部楼层
真的开阔了思路,太感谢了。。。。只是有一段代码还没有太搞懂,再麻烦您一下。。

  Me.税率.Value = Me.税率.Column(0, i)

这个意思是税率那个组合框,取了下拉列表的第I行的所有数据,还是就去了第一列的第I行数据呢?

如何是前者,那个0也可以换成1,2,3之类的吧。。。
8#
 楼主| 发表于 2010-12-21 23:02:53 | 显示全部楼层
真的开阔了思路,太感谢了。。。。只是有一段代码还没有太搞懂,再麻烦您一下。。

  Me.税率.Value = Me.税率.Column(0, i)

这个意思是税率那个组合框,取了下拉列表的第I行的所有数据,还是就去了第一列的第I行数据呢?

如何是前者,那个0也可以换成1,2,3之类的吧。。。
9#
 楼主| 发表于 2010-12-22 12:49:15 | 显示全部楼层
对ACCESS不太了解,还希望各位老师多指点
10#
 楼主| 发表于 2010-12-22 15:54:27 | 显示全部楼层
todaynew 发表于 2010-12-21 15:57
如果算式不对,可直接修改下列程序中的算式:
Sub 计算()
Dim i As Long

还有一个问题,再麻烦一下,为什么循环到列表行数-1;
而不是ListCount呢?
   For i = 1 To Me.税率.ListCount - 1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-15 02:19 , Processed in 0.117603 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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