设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 采用文本框+ Dlookup 函数 代替组合框作为录入界面控件的demo

[复制链接]
跳转到指定楼层
1#
发表于 2015-8-16 17:33:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fd901028 于 2015-9-27 11:56 编辑

本demo尝试采用文本框+ Dlookup 函数 代替组合框,作为录入界面控件的方法,解决组合框只能录入其中一列值的问题。
demo还包含一个通用参照模式的雏形,还有许多问题,请论坛各位高手看看这种思路是否可行,还需要如何改进,谢谢!

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-8-17 14:31:12 | 只看该作者
怎么说呢?一对一是没问题的,一对多时候,还是组合框方便一些。
事实上,组合框只需要列出一个字段就够了,没必要每个字段都列出来。

点击这里给我发消息

3#
发表于 2015-8-18 15:46:08 | 只看该作者
求助:请高手抽空斧正一下下O(∩_∩)O~

1、上面这个办法,主窗体上的控件(文本框)能够实现。子窗体的控件却不能用事件“获得焦点”来实现立即更新!用了“退出”,显示慢半

这个问题,听不太明白,是要做成什么?

点击这里给我发消息

4#
发表于 2015-8-18 15:57:28 | 只看该作者
本帖最后由 zpy2 于 2015-8-18 16:09 编辑

2、通用参照窗体的值来源于一个临时表,是否可以代码动态加载,比如用listBox承载候选值,筛选时遍历LiitBox,但这个筛选本人写不出来。
你写的,我都看不懂,需要达到什么效果,什么叫 动态加载,附件本身 是 删除 添加 就是动态的。

筛选时遍历LiitBox
是指用 非绑定的 listBox?

总之,不太明白需要达到什么效果?
--------------------------------------------
'用文本框录入的用法,相对来说代码多点麻烦点,但是界面更整洁美观
相对于 组合框吗? 貌似差不多。见附件

'文本框的失去焦点,用Dlookup返回值

Private Sub Customer_LostFocus()
     '1、用 Dlookup 从数据源获取值,用两个条件: 代码= 或 值=, 这样用户可以输入值或代码均可
   
    '2、返回值可能为空(用户输入错误),用 Nz
   
    Me.Customer = Nz(DLookup("[cusName]", "tblCustomer", "[cusCode]='" & Me.Customer & "' Or [cusName]='" & Me.Customer & "'"), "")
   
End Sub

本帖子中包含更多资源

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

x
5#
 楼主| 发表于 2015-8-19 20:39:45 | 只看该作者
zpy2 发表于 2015-8-18 15:57
2、通用参照窗体的值来源于一个临时表,是否可以代码动态加载,比如用listBox承载候选值,筛选时遍历LiitBo ...

     用“文本框+Dlookup”代替组合框的原因:录入人员提出“是否可以录入物料编码或物料名称均可”,但是“未经改造”的组合框一旦绑定,要么录入物料编码要么录入物料名称,二者不可得兼。在VBA中改造组合框似乎很难,目前还在找“在VBA中自定义控件”的资料。
6#
 楼主| 发表于 2015-8-19 20:57:50 | 只看该作者
本帖最后由 fd901028 于 2015-8-19 21:28 编辑
zpy2 发表于 2015-8-18 15:46
求助:请高手抽空斧正一下下O(∩_∩)O~

1、上面这个办法,主窗体上的控件(文本框)能够实现。子窗体的控 ...

frm Refer“参照窗体”  是想做成一个通用参照模块(一处水源供全国)。
  参照的思路是:从一个主窗体A的控件B“离开”,打开通用参照窗体,完成筛选后返回值C,A窗体成为当前窗体,离开时的控件B再次“getfocus”,事件getfocus将返回值C赋值给控件B,完成参照过程。
  问题:A窗体的子窗体当前控件D却不能用事件getfocus来刷新,我理解是:当A窗体再次成为当前时,虽然子窗体控件D“似乎”获得焦点(光标在闪),但“真正”获得焦点的是他的父窗体?
   抑或:当我们把一个窗体“数据表化”后,在当前子窗体内,同时出现了“n个控件D”(n行),Access如何确定我们想getfocus的那一行控件D?
   在VS中,表格控件datagridview用Rowindex和Columnindex定位一个单元格(同理,Excell也是这样)。

点击这里给我发消息

7#
发表于 2015-8-20 05:39:32 来自手机 | 只看该作者
嗯,你说的对,这种多字段的的确用文本框+DLookup了

点击这里给我发消息

8#
发表于 2015-8-20 05:56:53 来自手机 | 只看该作者
题:A窗体的子窗体当前控件D却不 能用事件getfocus来刷新,我理解是: 当A窗体再次成为当前时,虽然子窗体 控件D“似乎”获得焦点(光标在闪), 但“真正”获得焦点的是他的父窗体? 一种是用vb网格控件,另一种,在进入输入窗体时,保存 引用 如 set ctl= Screen.PreviousControl,返回后,用ctl.setfocus,行列,应是 调出输入窗体前的控件被激活。 如果就一列即名称一个控件,用硬编码,直接指定控件名称setfocus也行

点击这里给我发消息

9#
发表于 2015-8-20 06:00:17 来自手机 | 只看该作者
或:当我们把一个窗体“数据表 化”后,在当前子窗体内,同时出现 了“n个控件D”(n行),Access如何确 定我们想getfocus的那一行控件D? 把一个非绑定的文本框放到有绑定文本框的 数据表视图 窗体?这恐怕不行。

点击这里给我发消息

10#
发表于 2015-8-20 06:00:53 来自手机 | 只看该作者
或:当我们把一个窗体“数据表 化”后,在当前子窗体内,同时出现 了“n个控件D”(n行),Access如何确 定我们想getfocus的那一行控件D? 把一个非绑定的文本框放到有绑定文本框的 数据表视图 窗体?这恐怕不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 13:28 , Processed in 0.089338 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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