设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] [原创]一个方便输入的辅助录入窗体

[复制链接]
跳转到指定楼层
1#
发表于 2005-6-18 06:43:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(新修改版)

修改功能:

1、在文本框的标志属性中输入“NoPop”限制辅助窗体使用,输入表明或查询语句可自定义辅助窗体选择项(不做自动筛选)。

2、增加助记码功能,可根据字符串左边6位拼音首字母自动生成助记码,也可自己再修改,在文本框中输入字符串或助记符,均可筛选,返回选定的字符串。

3、弹出的辅助录入窗体设为无边框,可直接用回车或鼠标选定输入的字符串。按Esc键或选定字符串可以隐藏辅助录入窗体。

---------------------------------------

'在文本框中输入空格可显示全部选项,可自动记录已输入内容

'使用方法

'把modEntryStr模块、EntrySelect窗体、tblEntry表 导入到你的数据库,

'在需要辅助输入框的窗体的事件中的键预览设为是,

'并在窗体的“键释放(Form_KeyUp)”事件中加入语句:

'  ShowInputForm KeyCode

'增加 Tmtony 的modDock模块,定位弹出窗体的显示位置,不过必须是子窗体位置才正确

'在文本框的标志属性加字符串则不弹出辅助录入窗体

-----------------

在输入数据的时候,光标放在要输入的那个格子里,输入空格就弹出一个表来,表中反映的是要输入的所有内容.我输入前面几个字符,自动对表进行筛选.很快就能把要输入的内容找到,并选取后输入.并能添加最新内容。

最近看到好几个贴子问到上面要求,现做了一个示例,希望大家试用一下,提点意见。我下一步增加控制弹出窗口的位置的功能。

游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2005-6-18 19:43:28编辑过]

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-6-18 07:33:00 | 只看该作者
建议,将弹出的窗口做成treeview,窗体页脚用TOOLBAR建立修改,确定,取消功能,哇哈哈,整个速达的样子

点击这里给我发消息

3#
发表于 2005-6-18 08:42:00 | 只看该作者
非常好的功能, 的确很有创意.



如何定位窗体的功能,我以前倒做过,或许对你能有些帮助.



Option Compare Database

Option ExplicitPublic Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long

Private Declare Function GetFocus Lib "user32" () As Long

Private Declare Function GetQueueStatus Lib "user32" (ByVal fuFlags As Long) As Long

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Declare Function GetTickCount Lib "KERNEL32" () As Long

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Const GWL_STYLE = (-16)

Private Const QS_MOUSEBUTTON = &H4

Private Const QS_MOUSEMOVE = &H2

Private Const SM_CXBORDER = 5

Private Const SM_CXSCREEN = 0

Private Const SM_CYBORDER = 6

Private Const SM_CYSCREEN = 1

Private Const SWP_NOZORDER = &H4

Private Const WS_SYSMENU = &H80000

Private Const LOGPIXELSY = 90

Private Const LOGPIXELSX = 88Private Const DefaultCrementInterval As Single = 0.5Private Type POINTAPI

    X As Long

    Y As Long

End TypePrivate Type RECT

    Left As Long

    Top As Long

    Right As Long

    Bottom As Long

End TypePrivate Type Dimensions

    Width As Long

    Height As Long

End TypeDim mCallingControl As Control

Dim mCallingForm As Form

Dim mCrementInterval As Double

Dim mCrementIntervalPropertyName As String

Dim mCurrentControl As ControlDim mDtmDate As Date

Dim mMaxBottom As Single

Dim mMinTop As Single

Dim mMoveSpeedControl As Boolean

Dim mPixelsPerTwipHorizontalFactor As Single

Dim mPixelsPerTwipVerticalFactor As Single

Dim mPreviousControl As Control

Dim mPreviousLabel As Control

Dim mUndoDate As Date'===============================================================================

'-函数名称:         FormPlacement

'-功能描述:         根据主窗体位置自动停靠子窗体的位置

'-输入参数说明:     参数1:rctr Control 控件

'                   参数2:rfrm Form 窗体

'                   参数3:rintType Integer 停靠类型

'-返回参数说明:     无

'-使用语法示例:     FormPlacement txtCust,me,3

'-参考:

'-使用注意:         rctr 应获得焦点

'-兼容性:           97,2000,XP,2003 compatible

'-作者:             王宇虹

'-更新日期:        2003-06-23

'===============================================================================Public Sub FormPlacement(ByRef rctr As Control, rfrm As Form, Optional rintType As Integer = 0)

    Dim ctlRect As RECT

    Dim frmDimensions As Dimensions

    Dim frmRect As RECT

    Dim scrDimensions As Dimensions    ctlRect = ControlRect(rctr)

    frmDimensions = FormDimensions(rfrm)

    scrDimensions.Width = GetSystemMetrics(SM_CXSCREEN)

    scrDimensions.Height = GetSystemMetrics(SM_CYSCREEN)

    If Nz(rintType, 0) = 0 Then

        rintType = DLookup("FShowType", "tblShowType")

    End If

    '取系统设置的默认模式,如果没有,则默认为0

    Select Case rintType

    Case 1    '水平居中,垂直居中

        If (scrDimensions.Width - frmDimensions.Width) > 0 Then

            frmRect.Left = (scrDimensions.Width - frmDimensions.W
4#
发表于 2005-6-18 19:51:00 | 只看该作者
非常好用!謝謝分享!
5#
发表于 2005-6-18 20:00:00 | 只看该作者
但是這樣子窗体中每個文本框一輸入都會彈出列表框,怎樣在不需要輔助輸入的文本框中禁止彈出呢?
6#
发表于 2005-6-18 22:07:00 | 只看该作者
頂一下先,有辦法解決嗎?
7#
 楼主| 发表于 2005-6-18 23:06:00 | 只看该作者
已修改:1、增加 Tmtony 的modDock模块,定位弹出窗体的显示位置,不过必须是子窗体位置才正确2、根据lzx-shmily 建议,增加判断在文本框的标志属性有字符串则不弹出辅助录入窗体3、eyewitnes的建议可以做到,但影响了简洁,未作修改。我想弹出窗体可以采用无边框窗体,象下拉控件一样。
8#
 楼主| 发表于 2005-6-19 03:42:00 | 只看该作者

新修改版

(新修改版)

修改功能:

1、在文本框的标志属性中输入“NoPop”限制辅助窗体使用,输入表明或查询语句可自定义辅助窗体选择项(不做自动筛选)。

2、增加助记码功能,可根据字符串左边6位拼音首字母自动生成助记码,也可自己再修改,在文本框中输入字符串或助记符,均可筛选,返回选定的字符串。

3、弹出的辅助录入窗体设为无边框,可直接用回车或鼠标选定输入的字符串。按Esc键或选定字符串可以隐藏辅助录入窗体。

本帖子中包含更多资源

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

x
9#
发表于 2005-9-27 18:31:00 | 只看该作者
不错
10#
发表于 2005-9-27 18:48:00 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-30 19:17 , Processed in 0.098910 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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