以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  设计的录入窗口中,如何设置输入框位必填项?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=98505)

--  作者:rubonlau
--  发布时间:2017/3/30 20:48:00
--  设计的录入窗口中,如何设置输入框位必填项?
有些字段的数据要求为必填项。
如何设置该输入框为必填项呢?
另外。
有些字段要求不能重复
即使数据库里面的表已经设置了不能重复。
但是,通过录入窗口仍然可以输入重复字段的数据。
请问这两个功能点应该如何设置?

--  作者:有点色
--  发布时间:2017/3/30 20:57:00
--  

 可以在datacolchanging事件处理

 

http://www.foxtable.com/webhelp/scr/0624.htm

 

http://www.foxtable.com/webhelp/scr/2481.htm

 


--  作者:rubonlau
--  发布时间:2017/3/30 21:33:00
--  
If e.DataRow("房间号码") Is Nothing  Then
    MessageBox.Show("房间号码不允许为空!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.cancel = True
End If

我在datacolchanging设置了以上代码判断是否为空
可是使用录入工具录入的时候,仍然可以录入为空的数据

--  作者:rubonlau
--  发布时间:2017/3/30 21:57:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
现在有一个新的问题。
现在新增一行后,不输入房间号码会无法保存数据。
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
但退出该项目,不保存,重新打开该项目后,发现多了一行空白的数据。
重新添加多一行的数据,并填写房间号,可以正常保存。
但该空白行还是存在。

下面贴下代码。
在beforesavedatarow中设置的。

If e.DataRow.Isnull("房间号码") Then
    MessageBox.Show("房间号码不允许为空!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.cancel = True
End If

附件是表格的图片。


--  作者:有点色
--  发布时间:2017/3/30 22:02:00
--  

删掉空白的行,BeforeSaveDataRow事件,就不会再有空白的行能保存。

 

If e.DataRow.IsNull("房间号码") Then
    MessageBox.Show("房间号码不允许为空!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.cancel = True
End If

--  作者:rubonlau
--  发布时间:2017/3/30 22:37:00
--  
好的,现在还有个问题。
就是我的录入窗口中有个保存按钮。
代码如下:
DataTables("游戏信息表").Save
Tables("游戏信息表").AddNew()
就是保存后,会进入下一行。
可是如果像上面那样房间号为空的话,点击保存,会失败,但同时也会新增一行。
请问如何做个判断?
让他如果保存成功,就新增一行,保存失败,就继续留在当前行上?

--  作者:有点色
--  发布时间:2017/3/30 22:53:00
--  

DataTables("游戏信息表").Save
If DataTables("游戏信息表").HasChanges = False Then
    Tables("游戏信息表").AddNew()
End If

[此贴子已经被作者于2017/3/30 23:19:30编辑过]

--  作者:rubonlau
--  发布时间:2017/3/30 23:15:00
--  
这个代码还是没有效。
有没有什么参数能返回当前数据库是否能正常保存。
我想根据这样的参数来执行判断。

--  作者:有点色
--  发布时间:2017/3/30 23:19:00
--  

DataTables("游戏信息表").Save
If DataTables("游戏信息表").HasChanges = False Then
    Tables("游戏信息表").AddNew()
End If


--  作者:rubonlau
--  发布时间:2017/3/30 23:35:00
--  
我的窗口before close是以下的代码

If DataTables("游戏信息表").HasChanges Then
    Dim result As dialogresult
    result = MessageBox.Show("游戏信息内容改变,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
    If result = DialogResult.Yes Then
        DataTables("游戏信息表").Save
    ElseIf result = DialogResult.No Then
        DataTables("游戏信息表").RejectChanges
    Else
        e.cancel = True
    End If
End If

我现在想设计一个功能,就是如果当前数据库因为字段空值无法进行保存。
点击是的会弹出错误信息,确认错误信息后,需要让他返回到原本的窗口上,让他无法退出。
请问这要如何设计?