以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- find返回值不生效 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51539) |
-- 作者:kao_go -- 发布时间:2014/5/28 14:24:00 -- find返回值不生效 Dim dr As DataRow dr = .DataTable.Find("yhdm = \'"& yhdm &"\'") If dr IsNot Nothing Then MessageBox.Show(.Cols("yhdm").Caption+yhdm+"已经存在!","警告") \'新增或者修改时默认选中第一行第一列,并进入编辑状态 e.Form.Controls("you1").BaseControl.Row=0 e.Form.Controls("you1").BaseControl.Col=1 e.Form.Controls("you1").BaseControl.StartEditing \'新增或者修改时默认选中第一行第一列,并进入编辑状态 Else end if 以上代码,.DataTable.Find("yhdm = \'"& yhdm &"\'")无论输入什么都会提示已经存在,如果直接改成.DataTable.Find("yhdm = \'005‘)常量就能正常判断 求帮助
|
-- 作者:Bin -- 发布时间:2014/5/28 14:26:00 -- 检查你 yhdm 这个变量 是否正常. |
-- 作者:kao_go -- 发布时间:2014/5/28 14:26:00 -- Dim yhdm As String=.current("yhdm"),,yhdm是这样定义的 之前直接用.【.current("yhdm")】也是不行 我用MessageBox.show(yhdm)能获取到在yhdm输入的值
[此贴子已经被作者于2014-5-28 14:28:42编辑过]
|
-- 作者:Bin -- 发布时间:2014/5/28 14:28:00 -- 如果你是取本表的当前行,当然你怎么FIND都是有值得啊. 你利用messagebox.show 弹出一下变量的值,人工判断一下看看吧. FIND是不可能有问题的.
|
-- 作者:kao_go -- 发布时间:2014/5/28 14:31:00 -- 完整代码 \'窗口变量,编辑状态 Dim bianji As String=e.Form.Controls("bianji").text With Tables("yonghu") Dim yhdm As String=.current("yhdm") Dim yhmc As String=.current("yhmc") If yhdm="" Or yhmc="" Then If yhdm="" Then If MessageBox.Show(.Cols("yhdm").Caption+"不能为空!","警告",MessageBoxButtons.ok,MessageBoxIcon.Question) = DialogResult.ok Then End If \'新增或者修改时默认选中第一行第一列,并进入编辑状态 e.Form.Controls("you1").BaseControl.Row=0 e.Form.Controls("you1").BaseControl.Col=1 e.Form.Controls("you1").BaseControl.StartEditing \'新增或者修改时默认选中第一行第一列,并进入编辑状态 ElseIf yhmc="" Then If MessageBox.Show(.Cols("yhmc").Caption+"不能为空!","警告",MessageBoxButtons.ok,MessageBoxIcon.Question) = DialogResult.ok Then End If \'新增或者修改时默认选中第一行第一列,并进入编辑状态 e.Form.Controls("you1").BaseControl.Row=1 e.Form.Controls("you1").BaseControl.Col=1 e.Form.Controls("you1").BaseControl.StartEditing \'新增或者修改时默认选中第一行第一列,并进入编辑状态 End If Else Dim dr As DataRow dr = .DataTable.Find("yhdm = \'"&yhdm&"\'") If dr IsNot Nothing Then MessageBox.Show(.Cols("yhdm").Caption+yhdm+"已经存在!","警告") \'新增或者修改时默认选中第一行第一列,并进入编辑状态 e.Form.Controls("you1").BaseControl.Row=0 e.Form.Controls("you1").BaseControl.Col=1 e.Form.Controls("you1").BaseControl.StartEditing \'新增或者修改时默认选中第一行第一列,并进入编辑状态 Else .Current.Save() \'保存后禁止编辑 其他相应按钮禁用 .AllowEdit = False e.Form.Controls("baocun").Enabled =False \'设置按钮状态 e.Form.Controls("quxiao").Enabled =False e.Form.Controls("xinzeng").Enabled =True e.Form.Controls("xiugai").Enabled =True e.Form.Controls("shanchu").Enabled =True e.Form.Controls("shuaxin").Enabled =True e.Form.Controls("daochu").Enabled =True e.Form.Controls("dayin").Enabled =True e.Form.Controls("shezhi").Enabled =True e.Form.Controls("guanbi").Enabled =True \'设置按钮状态 e.Form.Controls("bianji").text="0" \'窗口变量,编辑状态 End If End If End With |
-- 作者:Bin -- 发布时间:2014/5/28 14:32:00 -- 看4楼自己调试一下, 搞不定就上例子. |
-- 作者:kao_go -- 发布时间:2014/5/28 14:36:00 -- 利用messagebox.show 弹出一下变量的值是正确的,就是我输入的值 |
-- 作者:Bin -- 发布时间:2014/5/28 14:37:00 -- 检查表中是否有对应的值. |
-- 作者:有点甜 -- 发布时间:2014/5/28 14:40:00 -- 很矛盾的代码,肯定是查得到的啊。
With Tables("yonghu")
Dim yhdm As String=.current("yhdm")
Dim yhmc As String=.current("yhmc")
If yhdm="" Or yhmc="" Then
Else
Dim dr As DataRow
dr = .DataTable.Find("yhdm = \'"&yhdm&"\'")
If dr IsNot Nothing Then
MessageBox.Show(.Cols("yhdm").Caption+yhdm+"已经存在!","警告")
|
-- 作者:kao_go -- 发布时间:2014/5/28 14:40:00 -- 用的是外部数据源,表里面没有对应的值(表里面只有【001 002 003 004 005 006 】)yhdm数据类型是varchar(50)
|