Office中国论坛/Access中国论坛

标题: ACCESS组合框新用法 [打印本页]

作者: fd901028    时间: 2008-9-14 19:34
标题: ACCESS组合框新用法
公司ERP项目使用的是某友软件公司的XXX,录入数据时有个参照功能(可以录入编码,也可以录入物料名称……)。看了好生嫉妒,能不能将ACCESS的组合框动动手脚,模拟一下人家的效果?仔细查看Combobox的属性,见有个ColumnWidths属性,灵感来了…… 干脆多显示几列(包括物料编码,物料名称,自定义的“快速输入代码”列),LostFocus时再将其他不必要的列隐藏。      具体demo参见附件。
  由于我的机器上没有安装ACCESS2003,demo数据库使用ACCESS2007做的,然后存了一个Access2003gesi ,不知在2003能不能用.   
小弟初学ACCESS,希望各位多多指教。

作者: lxh1968    时间: 2008-9-14 20:01
谢谢分享[:26]
作者: 王村煎鱼    时间: 2008-9-14 21:54
这个貌似可以用组合框按钮向导搞定。
作者: fd901028    时间: 2008-9-14 23:09
标题: 补充一下
发帖时可能没有表达清楚。
最终组合框的效果为:存储A列,显示B列,输入C列。
作者: chenlugen    时间: 2008-9-14 23:27
谢谢分享,,,,先看看,,,[:50]
作者: tmtony    时间: 2008-9-15 00:18
谢谢分享,大家所见略同,我也是使用这种方法, 不过写成了通用函数,方便设置不同列数 不同栏宽的组合框.
'===============================================================================
'-函数名称:         gt_SetComboColumnWidth
'-功能描述:         设置组合框栏位宽度,进入时可按编码录入,离开时可显示名称
'-输入参数说明:     参数1:rctr Control 控件对象
'                   参数2:rstrColumnWidths String 栏位宽度
'-返回参数说明:     无
'-使用语法示例:     gt_SetComboColumnWidth cboCust,"3;2;4"
'-参考:
'-使用注意:         只适用Label TextBox CommandButton ComboBox OptionButton CheckBox
'-兼容性:           97,2000,XP,2003 compatible
'-作者:             王宇虹,改进:王宇虹
'-更新日期:        2004-08-24
'===============================================================================
Public Function gt_SetComboColumnWidth(rctr As Control, rstrColumnWidths As String)
    On Error Resume Next
    If TypeOf rctr Is ComboBox Then
        rctr.ColumnWidths = rstrColumnWidths
        ' rctr.RowSource = rctr.RowSource
        ' rctr.Requery
    End If
End Function


'===============================================================================-----天鸣科技--->>>>>>>>
'-函数名称:         gt_SetCboEnterEvent
'-功能描述:         设置组合框的进入事件
'-输入参数:         参数1:rctrComboBox String 组合框控件
'                   可选参数2:rintType Integer 方式
'                   可选参数3:rstrTemp String 其它参数
'-返回参数:         无
'-使用示例:         gt_SetCboEnterEvent cboCust,0
'-相关调用:         无
'-使用注意:         可设置是否自动弹出组合框,还是没有内容才弹出组合框
'-兼 容 性:         97,2000,XP,2003 compatible
'-参考资料:
'-作    者:         王宇虹  修改:王宇虹
'-创建日期;         2002-08-26  更新日期: 2002-08-28 ,2002-11-15
'-图    解:
'===============================================================================--<>>>>>

Public Function gt_SetCboEnterEvent(Optional rctrComboBox As Control, Optional rintType As Integer = 0, Optional rstrTemp As String)
    Dim blnCancel As Boolean
    Dim frm As Form
    On Error Resume Next

    If TypeOf rctrComboBox.Parent Is Form Then
        Set frm = rctrComboBox.Parent
    Else
        If TypeOf rctrComboBox.Parent.Parent Is Form Then
            Set frm = rctrComboBox.Parent.Parent
        Else
            If TypeOf rctrComboBox.Parent.Parent.Parent Is Form Then
                Set frm = rctrComboBox.Parent.Parent.Parent
            Else
                Exit Function
            End If

        End If
    End If
    If frm Is Nothing Then Exit Function
    If frm.CurrentView = 1 Then
        If Nz(gt_GetParaItem("PopupWindow", rctrComboBox.Tag)) <> "" Or Nz(gt_GetParaItem("DropWindow", rctrComboBox.Tag)) <> "" Then


            frm.cmdOpenSelWindow.Tag = frm.ActiveControl.name
            frm.cmdOpenSelWindow.Left = frm.ActiveControl.Left + frm.ActiveControl.Width + 10
            frm.cmdOpenSelWindow.Top = frm.ActiveControl.Top

            If frm.AllowEdits = False Or frm.Controls(frm.cmdOpenSelWindow.Tag).Enabled = False Or frm.Controls(frm.cmdOpenSelWindow.Tag).Locked = True Then   '
                If frm.cmdOpenSelWindow.Object.Enabled = True Then
                    frm.cmdOpenSelWindow.Object.Enabled = False

                End If
                If frm.cmdOpenSelWindow.Visible = True Then
                    frm.cmdOpenSelWindow.Visible = False
                End If
            Else
                If frm.cmdOpenSelWindow.Object.Enabled = False Then
                    frm.cmdOpenSelWindow.Object.Enabled = True

                End If
                If frm.cmdOpenSelWindow.Visible = False Then
                    frm.cmdOpenSelWindow.Visible = True
                End If
            End If

        End If

    End If
    If Nz(rctrComboBox.ControlSource) <> "" Then
        If frm.AllowEdits = False Or rctrComboBox.Enabled = False Or rctrComboBox.Locked = True Then
            blnCancel = True
        End If
    Else
        If rctrComboBox.Enabled = False Or rctrComboBox.Locked = True Then
            blnCancel = True
        End If
    End If
    If blnCancel Then Exit Function
    If Nz(gt_GetParaItem("ComboStyle", rctrComboBox.Tag)) = "Autocbo" Then    'InStr(rctrComboBox.Tag, "autocbo") > 0
        gt_SetComboColumnWidth rctrComboBox, rstrTemp
    End If

    Select Case rintType
    Case 2
        gt_ComboAutoExpand rctrComboBox, True
    Case 1
        gt_ComboAutoExpand rctrComboBox, False
    Case 0

    End Select

End Function


'===============================================================================-----天鸣科技--->>>>>>>>
'-函数名称:         gt_SetCboExitEvent
'-功能描述:         设置组合框的离开事件
'-输入参数:         参数1:rctrComboBox String 组合框控件
'                   可选参数2:rintType Integer 方式
'                   可选参数3:rstrTemp String 其它参数
'-返回参数:         无
'-使用示例:         gt_SetCboExitEvent cboCust,0
'-相关调用:         无
'-使用注意:
'-兼 容 性:         97,2000,XP,2003 compatible
'-参考资料:
'-作    者:         王宇虹  修改:王宇虹
'-创建日期;         2002-08-26  更新日期: 2002-08-28 ,2002-11-15
'-图    解:
'===============================================================================--<>>>>>
Public Function gt_SetCboExitEvent(Optional rctrComboBox As Control, Optional rintType As Integer = 0, Optional rstrTemp As String)
    Dim blnCancel As Boolean
    Dim frm As Form
    On Error Resume Next

    If TypeOf rctrComboBox.Parent Is Form Then
        Set frm = rctrComboBox.Parent
    Else
        If TypeOf rctrComboBox.Parent.Parent Is Form Then
            Set frm = rctrComboBox.Parent.Parent
        Else
            If TypeOf rctrComboBox.Parent.Parent.Parent Is Form Then
                Set frm = rctrComboBox.Parent.Parent.Parent
            Else
                Exit Function
            End If
        End If
    End If
    If frm Is Nothing Then Exit Function
    If Nz(rctrComboBox.ControlSource) <> "" Then
        If frm.AllowEdits = False Or rctrComboBox.Enabled = False Or rctrComboBox.Locked = True Then
            blnCancel = True
        End If
    Else
        If rctrComboBox.Enabled = False Or rctrComboBox.Locked = True Then
            blnCancel = True
        End If
    End If
    If blnCancel Then Exit Function
    If Nz(gt_GetParaItem("ComboStyle", rctrComboBox.Tag)) = "Autocbo" Then    'InStr(rctrComboBox.Tag, "autocbo") > 0
        gt_SetComboColumnWidth rctrComboBox, rstrTemp
    End If
End Function
作者: gaofei186    时间: 2008-9-15 07:54
看看一下
作者: fd901028    时间: 2008-9-15 08:44
标题: 高,实在是高!
哇,站长这个实在是方便,全面。学习了。谢谢,顺便说一下。俺去年买了各位领导的《Access开发答疑200问》,学到不少东西。现在已经开发了几个小型数据库。效果还不错。谢谢! 确实是好书!
作者: ui    时间: 2008-9-15 09:41
谢谢 fd901028 好实例!
作者: tanhong    时间: 2008-9-15 11:23
好东西怎么发到灌水区了.
作者: fd901028    时间: 2008-9-15 12:06
怕人家笑话
作者: tanhong    时间: 2008-9-15 12:30
分享好东西哪有笑话之礼. 支持楼主!
作者: weixia0000    时间: 2008-10-5 12:52
谢谢分享
作者: kangking    时间: 2008-10-5 13:19
谢谢分享
作者: hywlthj    时间: 2008-10-6 00:30
标题: 好东东要学
谢谢分享,学习再学习
作者: 小小鸟    时间: 2008-11-13 13:07
谢谢分享,下载学习。
作者: 飘零雨    时间: 2008-11-13 13:08
谢谢谢谢
作者: lgcsee    时间: 2009-2-9 14:35
要好好学习一下!
作者: jinhaisu    时间: 2009-2-17 15:26
看看
作者: apeng    时间: 2009-2-17 16:26
这个学习一下
作者: aaronpi    时间: 2009-2-18 13:35
学习一下
~~~~~~~~~
作者: luhao    时间: 2009-2-21 18:34
LOOC
作者: guowj_ywk_sist    时间: 2009-2-22 13:06
谢谢分享!
作者: tdhgj    时间: 2009-2-23 20:24
good
作者: yanwei82123300    时间: 2009-3-6 11:59
谢谢!多多学习!谢谢!多多学习!
作者: ghfmac    时间: 2009-3-6 14:28
看的!!!!
作者: 阿六爱狗    时间: 2009-3-27 10:42

作者: guzhonghua26    时间: 2009-3-29 12:18
下载看看。
作者: 82077802    时间: 2009-3-29 12:40
看看一下
作者: pcmanliu    时间: 2009-5-2 14:35
thank you for sharing.
作者: niexiyong    时间: 2009-5-14 20:51
看看.
作者: 风啸啸    时间: 2009-6-6 17:39
谢谢分享
作者: wdq    时间: 2009-6-8 00:14
good
作者: kevin5433    时间: 2009-6-10 09:15
顶一下,好例
作者: divineka    时间: 2009-6-10 09:29
这贴要收藏一下。
作者: ep32    时间: 2009-6-10 09:41
看看
作者: bbtsoft    时间: 2009-6-14 09:44
ddddddddddddddddddddddddddddddddddddddddddddddddddddd
作者: huangxiuwen    时间: 2009-6-18 23:06
学习
作者: 柔情小生    时间: 2009-6-19 09:05
好东西
作者: Sundy1250    时间: 2009-7-3 15:16
好东东啊
作者: wzh    时间: 2009-7-14 16:25
谢谢
作者: qsdys    时间: 2009-7-25 14:37
路过看看,谢谢分享!
作者: ngy009    时间: 2009-7-28 14:26
学习
作者: CHENWK    时间: 2009-7-29 00:26

作者: LAIWEIWEN    时间: 2009-8-4 15:10
顶顶顶顶顶顶顶顶顶顶
作者: LAIWEIWEN    时间: 2009-8-4 15:11
顶顶顶顶顶顶顶顶顶顶
作者: officeccm    时间: 2009-9-9 01:39
学习了
作者: 鱼儿游游    时间: 2009-10-6 21:23

作者: chaojianan    时间: 2009-10-7 06:21
谢谢分享。
作者: li08hua    时间: 2009-10-31 22:57
学学东东
作者: wjtravis    时间: 2009-11-3 17:19
要下來看看先
作者: 2pl01    时间: 2009-11-10 14:48
我要看一看
作者: xxcun    时间: 2009-11-20 10:35
学习了
作者: sillysilly    时间: 2009-11-23 21:00
谢谢分享,,,,先看看
作者: c101    时间: 2009-11-23 21:06
谢谢分享
作者: apsfxc1    时间: 2009-12-10 10:14
感谢分享
作者: tony182838    时间: 2009-12-26 19:06
下来看看,谢谢分享
作者: cjssxo    时间: 2010-2-28 02:01
好,好办法啊
作者: loginwjd303    时间: 2010-7-19 15:41
来看看

作者: ruanjy    时间: 2010-7-22 10:05
tttttttttttttttttt
作者: ZHENGLIAN    时间: 2010-8-18 15:39
小弟初学ACCESS,希望各位多多指教
作者: bpchan    时间: 2010-9-4 09:17
好东东啊!!
作者: 13601812106_01    时间: 2010-11-19 11:35
下来看看,谢谢分享
作者: lolozh    时间: 2010-12-7 12:39
初学者,下了看看。
作者: yang2008ilove    时间: 2010-12-7 20:26
ZXZXZXZ
作者: sun.gd    时间: 2010-12-9 11:59
这么有创意
作者: 崔延东    时间: 2010-12-9 12:35
学习中
作者: lymin    时间: 2010-12-27 08:30
学习一下
作者: combine38    时间: 2011-1-21 14:53
学习
作者: lwb_hao    时间: 2011-1-28 11:07
好东东
作者: bx19830825    时间: 2011-2-17 10:57
学习

作者: luciferwa    时间: 2011-7-12 14:46
下載回來學習了
作者: qczvba    时间: 2011-7-12 16:13
谢楼主分享。
作者: yodong    时间: 2011-7-12 20:13
看看
作者: trulyzeng    时间: 2011-8-17 23:32
THANKS A LOT
作者: trulyzeng    时间: 2011-8-17 23:32
回复 fd901028 的帖子

THANKS A LOT
作者: alonet    时间: 2011-8-21 10:21
试试
作者: yanghua1900363    时间: 2011-8-21 11:13
谢谢
作者: hua009    时间: 2011-10-18 12:27
谢谢
作者: cxdlsqq    时间: 2011-10-20 13:13
太谦虚了
作者: cxdlsqq    时间: 2011-10-20 13:28
解压密码是多少
作者: xie62    时间: 2011-10-20 13:38
看看一下
作者: xhdd    时间: 2011-11-6 23:08
谢谢!学习中。。。。
作者: LeeTien    时间: 2011-12-3 15:56
学习了
谢谢
作者: bbsliu    时间: 2012-1-15 19:06
好资料,学习中
作者: vk602    时间: 2012-1-17 17:24
kankan
作者: qtsots    时间: 2012-1-17 17:36
好方法,学习学习
作者: wgh3g    时间: 2012-1-17 20:40
看看
作者: vk602    时间: 2012-1-17 23:17
password?
作者: zhylee    时间: 2012-2-10 20:23
地对地导弹
作者: efcndi    时间: 2012-2-24 16:14
看看
作者: kuma@access-cn    时间: 2012-3-23 13:31
支持楼主
作者: boyandmerry    时间: 2012-3-23 23:14
看看有什么新鲜的东西
作者: accesswj    时间: 2012-5-13 13:47
okokokokkookko
作者: chshb    时间: 2012-6-12 08:33
谢谢分享
作者: layaman_999    时间: 2012-6-12 09:08
look up
作者: 轻风    时间: 2012-6-12 09:22
学习之
作者: 焰火    时间: 2012-6-12 11:03
谢谢分享

作者: tjminsheng    时间: 2012-9-13 00:10
学习  谢谢分享
作者: chenfuping    时间: 2012-9-16 11:00
谢谢主往往




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3