设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] 如何回车后关闭计算窗口而不是隐藏?

[复制链接]
跳转到指定楼层
1#
发表于 2006-7-14 17:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是简便计算器模块,是按下回车后把计算的值传递给文本框中,然后隐藏,如何把它改为关闭?

Private Sub 运算_KeyPress(KeyAscii As Integer)
    kk = "运算符"
    Select Case KeyAscii
    Case 8
        kk = "删除"
    Case 13
        kk = "回车"
        运算.SelStart = Len(运算.Text)
        If Len("" & 运算.Text & "") < 1 Then
            If Len("" & d2 & "") < 1 Then
                '返回
                Me.Visible = False
                Form_采购明细表.实际采购量 = d1
            
            Else
                '计一次加0后清d2值
                kk = "计算"
                d2 = ""
                运算 = ""
            End If
        Else
            '计算值
            If Len("" & d2 & "") > 0 Then
                t_value = "0+" & d1 & d2 & 运算.Text
                If IsNull(运算.Text) Or Len(运算.Text) < 1 Then
                    d2 = ""
                    kk = "计算"
                Else
                    d1 = Round(Eval(t_value), 2)
                    d1 = IIf(Mid(d1, 1, 1) = ".", "0" & d1, d1)
                    d2 = ""
                    运算 = ""
                    kk = "计算"
                End If
            Else
                d1 = IIf(Mid(运算.Text, 1, 1) = ".", "0" & 运算.Text, 运算.Text)
                d2 = ""
                运算 = ""
                kk = "计算"
            End If
        End If
    Case 46, 42, 43, 45, 47
        If 运算.SelStart = Len(运算.Text) Then
            Select Case KeyAscii
            Case 46
                If (InStr(1, 运算.Text, ".", vbTextCompare) > 0) And (Chr(KeyAscii) = ".") Then
                    kk = "非法"
                End If
            Case 42, 43, 45, 47
                If Len("" & d2 & "") > 0 Then
                    t_value = "0+" & d1 & d2 & 运算.Text
                    If IsNull(运算.Text) Or Len(运算.Text) < 1 Then
                        d2 = Chr(KeyAscii)
                        kk = "计算"
                    Else
                        d1 = Round(Eval(t_value), 2)
                        d1 = IIf(Mid(d1, 1, 1) = ".", "0" & d1, d1)
                        d2 = Chr(KeyAscii)
                        kk = "计算"
                    End If
                Else
                    If Len("" & d1 & "") > 0 Then
                        If Len(运算.Text) > 1 Then
                            d1 = IIf(Mid(运算.Text, 1, 1) = ".", "0" & 运算.Text, 运算.Text)
                        Else
                            d1 = d1
                        End If
                    Else
                        d1 = IIf(Mid(运算.Text, 1, 1) = ".", "0" & 运算.Text, 运算.Text)
                    End If
                    d2 = Chr(KeyAscii)
                    kk = "计算"
                End If
            End Select
        Else
            运算 = 运算.Text
            运算.SelStart = Len(运算.Text)
            kk = "非法"
        End If
    Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
        kk = "数码"
    Case Else
        kk = "非法"
    End Select

End Sub

Private Sub 运算_KeyUp(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case 37
        kk = "运算符"
        If Len(运算.Text) > 1 Then
            运算 = Mid(运算.Text, 1, Len(运算.Text) - 1)
            运算.SelStart = Len(运算)
        Else
            运算 = ""
        End If
    Case 39
        d1 = ""
        d2 = ""
        kk = ""
        运算 = ""
    Case 38, 40
        运算 = 运算.Text
        运算.SelStart = Len(运算)
    End Select

    If kk = "非法" Then
        kk = "运算符"
        If Len(运算.Text) > 1 Then
            运算 = Mid(运算.Text, 1, Len(运算.Text) - 1)
            运算.SelStart = Len(运算)
        Els
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-7-14 21:09:00 | 只看该作者
自已顶

3#
发表于 2006-7-14 21:28:00 | 只看该作者
.................................

If Len("" & 运算.Text & "") < 1 Then
    If Len("" & d2 & "") < 1 Then          '返回
        Form_采购明细表.实际采购量 = d1
        DoCmd.Close acForm, Me.Name
    Else
................................

试试这样行不行.
4#
 楼主| 发表于 2006-7-14 21:40:00 | 只看该作者
可以,谢谢
5#
发表于 2006-7-14 23:17:00 | 只看该作者
??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-27 00:15 , Processed in 0.096224 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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