以文本方式查看主题

-  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=152367)

--  作者:yacity
--  发布时间:2020/7/10 12:03:00
--  如何定位光标?

图片点击可在新窗口打开查看此主题相关图片如下:定位光标1.jpg
图片点击可在新窗口打开查看

如图

验证代码,datachanged 代码如下

Select Case e.DataCol.Name  \'防止电话重复
   Case "tel1","tel2","tel3"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull(e.DataCol.name) = False
              If e.DataTable.Select("tel1 = \'" & e.NewValue & "\' Or  tel2 = \'" & e.NewValue & "\' Or tel3 = \'" & e.NewValue & "\'") .Count > 1 Then
                dr(e.DataCol.name) = e.OldValue
                  MessageBox.Show("请勿重复录入电话号码!")
          End If
        End If
End Select

输入单位电话1 确认的时候,如果电话有重复,弹出对话框,确认后光标重新定位到电话2,如何让光标从新定位到电话1?

--  作者:有点蓝
--  发布时间:2020/7/10 12:17:00
--  
forms("窗口1").controls("电话1").select()
--  作者:yacity
--  发布时间:2020/7/10 15:55:00
--  
forms("新增客户").controls("TextBox4").Select()
成功
但是多个窗口调用这段代码呢?
比如 “修改客户信息” 窗口也有这个控件怎么办?

--  作者:有点蓝
--  发布时间:2020/7/10 15:58:00
--  
打开哪个窗口就调用哪个窗口的控件咯。如果提示打开了几个窗口就重复调用代码:

forms("新增客户").controls("TextBox4").Select()
forms("xxxx").controls("TextBoxxx").Select()
……

--  作者:yacity
--  发布时间:2020/7/10 16:12:00
--  
这段代码是在 客户表 datachanged  事件里面。

Select Case e.DataCol.Name  \'防止电话重复
   Case "tel1","tel2","tel3"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull(e.DataCol.name) = False
              If e.DataTable.Select("tel1 = \'" & e.NewValue & "\' Or  tel2 = \'" & e.NewValue & "\' Or tel3 = \'" & e.NewValue & "\'") .Count > 1 Then
                dr(e.DataCol.name) = e.OldValue
                  MessageBox.Show("请勿重复录入电话号码!"
          
forms("新增客户").controls("TextBox4").Select()
          End If
        End If
End Select

现在有两个窗口,
一个是新增客户窗口,一个是修改客户信息窗口  我怎么知道是哪个窗口调用它啊?

--  作者:有点蓝
--  发布时间:2020/7/10 16:21:00
--  
正常新增和修改一个窗口就可以吧,有必要分开?

判断一下咯:
if forms("新增客户").opened then
forms("新增客户").xxxx
elseif if forms("修改客户").opened then
forms("修改客户").xxxx
end if

--  作者:yacity
--  发布时间:2020/7/10 18:43:00
--  
好吧 就算把两个窗口“新增客户信息”和“修改客户信息” 集合到一起。
菜单上打开窗口
Forms("新增客户").Open()
Tables("kehu").AddNew()

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

问题1

如果这时候不想添加客户,取消以后,新增的一行还是存在。怎解决?
取消按钮代码
Dim r As Row = Tables("kehu").Current
r.Reject() \'撤销修改
e.Form.ClearErrors() \'清除所有控件的错误提示
e.Form.Close()

问题2

如果添加代码
Tables("kehu").Current.Delete()
要是编辑客户信息的时候怎么办?编辑修改到一半不想修改了,点取消按钮,岂不是把这条信息删除了?

问题3

窗口标题“新增客户信息”,“修改客户信息”,怎么随条件变化?

[此贴子已经被作者于2020/7/10 19:00:53编辑过]

--  作者:有点蓝
--  发布时间:2020/7/11 8:54:00
--  
1、取消按钮代码

dataTables("kehu").Rejectchange() \'撤销所有修改
e.Form.ClearErrors() \'清除所有控件的错误提示
e.Form.Close()

2、这个是您要思考的问题,您(用户)想怎么办,然后程序才知道要怎么办

3、参考:http://www.foxtable.com/webhelp/topics/0870.htm,直接在窗口里添加新增,删除等功能,没有必要让用户不断的关闭窗口,打开窗口才能进行不同行的维护,窗口标题改为“用户信息维护”这种咯