Foxtable(狐表)用户栏目专家坐堂 → find返回值不生效


  共有3632人关注过本帖树形打印复制链接

主题:find返回值不生效

帅哥哟,离线,有人找我吗?
kao_go
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
find返回值不生效  发帖心情 Post By:2014/5/28 14:24:00 [只看该作者]


 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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/28 14:26:00 [只看该作者]

检查你 yhdm  这个变量 是否正常.

 回到顶部
帅哥哟,离线,有人找我吗?
kao_go
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/28 14:28:00 [只看该作者]

如果你是取本表的当前行,当然你怎么FIND都是有值得啊.

你利用messagebox.show 弹出一下变量的值,人工判断一下看看吧.

FIND是不可能有问题的.

 回到顶部
帅哥哟,离线,有人找我吗?
kao_go
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/28 14:32:00 [只看该作者]

看4楼自己调试一下, 搞不定就上例子.

 回到顶部
帅哥哟,离线,有人找我吗?
kao_go
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
  发帖心情 Post By:2014/5/28 14:36:00 [只看该作者]

利用messagebox.show 弹出一下变量的值是正确的,就是我输入的值

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/28 14:37:00 [只看该作者]

检查表中是否有对应的值.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
  发帖心情 Post By:2014/5/28 14:40:00 [只看该作者]

用的是外部数据源,表里面没有对应的值(表里面只有【001
002
003
004
005
006
】)
yhdm数据类型是varchar(50)

 回到顶部
总数 27 1 2 3 下一页