Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于窗体文本框输入新问题,

小不点  发表于:2011-07-20 15:20:42  
复制

比如有个窗体可以输入数据,

 

如果文本框内不输入数据时也可以回车下跳,最终保存的空数据,只有个日期;

 

如何才能不输入数据时(光标)就不可以下移到另一个文本框呢?

 

望师傅门指点,

 

下面是麥田写给我的

 

做个不能为空的提示

 

If IsNull(Me.文本框名称) Then
MsgBox "该数据不能为空,请输入数据!", vbCritical, "提示:"
Me.文本框名称.SetFocus
Exit Sub
End If

 

可是提示完了,光标还会继续向下跳的!

 

如果不输入东西,能不能光标也不下跳啊?

 

或我规定的数据,输入其他数字会报错,例如:123456,456789,147258,这几组数字,如果输入其它数字将会有错误提示,



 

Top
麥田 发表于:2011-07-20 15:38:45
往下输入也没关系  最终还是不能保存的  一点击保存  会提示有个字段为空了  必须要输入的

丘山 发表于:2011-07-20 16:29:24

解决你这个问题可以在窗体上进行如下操作

1、设置文本框的 有效性规则为 in(123456,456789,147258) 可以解决只能输入in括号的数据

2、设置默认值为有效性规则内的某一个值,这样可以保证文本框内肯定有数据,如果删除原数据或输入不在规则内的数据焦点将跳不出文本框



小不点 发表于:2011-07-20 16:58:36

因为保存按钮加载事件:

Private Sub Command38_Click()
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
 
   
 If MsgBox("你确定要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
       Set rst1 = CurrentDb.OpenRecordset("IDM", dbOpenDynaset)
        rst1.AddNew
        rst1("Week") = Me.Week
        rst1("User") = Me.User
        rst1("IDM P/N") = Me.[IDM P/N]
        rst1("QTY") = Me.QTY
        rst1("Surplus") = Me.Surplus
        rst1("department") = Me.department
        rst1("Demand") = Me.Demand
        rst1.Update
        rst1.Close
        Set rst1 = Nothing
       Set rst2 = CurrentDb.OpenRecordset("IDM¸±±¾", dbOpenDynaset)
        rst2.AddNew
        rst2("Week") = Me.Week
        rst2("User") = Me.User
        rst2("IDM P/N") = Me.[IDM P/N]
        rst2("QTY") = Me.QTY
        rst2("Surplus") = Me.Surplus
        rst2("department") = Me.department
        rst2("Demand") = Me.Demand
        rst2.Update
        rst2.Close
        Set rst2 = Nothing
       MsgBox "保存成功!", vbInformation, "提示"
        '清空,以便输入新的记录      

        Me.Week = Null
        Me.User = Null
        Me.[IDM P/N] = Null
        Me.QTY = Null
         Me.User.SetFocus
    End If

End Sub

 

可是还是能保存到表里啊????弄不懂了???



hjs 发表于:2011-07-20 23:32:52

失去焦点的事件书写:

 

If IsNull(Me.文本框名称) Then
MsgBox "该数据不能为空,请输入数据!", vbCritical, "提示:"

me!comx.setfocus
Me.文本框名称.SetFocus
Exit Sub
End If

 

在窗体添加一个comx的按钮,设置为不可见,即可。

 

 



都市侠影 发表于:2011-07-21 07:49:14

你把“麦田”给你的那段代码加在文本框的失去焦点事件里,而不是确定按钮的单击事件里可也。

但是这样做有一个麻烦就是如果你填了一半不想填了,就只能关闭窗体了。



总记录:5篇  页次:1/1 9 1 :