Foxtable(狐表)用户栏目专家坐堂 → 替换代码问题


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

主题:替换代码问题

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
替换代码问题  发帖心情 Post By:2010/8/11 18:06:00 [只看该作者]

Dim dd As WinForm.TextBox = Forms("调整工资工龄暗").Controls("姓名")
Dim dr2 As DataRow = DataTables("员工档案").Find("[姓名] = '" & dd.text & "' and [标记] Is Not Null ")
If dr2 IsNot Nothing Then
    DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [现基本工资暗] =  Max and [岗位工资暗] =  Max  ")
    DataTables("工资调整").ReplaceFor("岗位工资暗", Forms("调整工资工龄暗").Controls("岗位工资暗").text, " [姓名] = '" & dd.text & "' and [现基本工资暗] =  Max and [岗位工资暗] =  Max ")
Else
    MessageBox.Show("您调整的员工不对!", "提示")
End If

请问以上按钮代码红色的问题在哪里,谢谢


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/11 18:22:00 [只看该作者]

Max 指什么?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/11 18:44:00 [只看该作者]

或许你要定义一下:

Dim Max As Double = DataTables("表名").Compute("Max(列名)", "条件")


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/8/11 19:25:00 [只看该作者]

姓名相同,现基本工资暗和岗位工资暗有多行,如:

调整时间                    姓名     现基本工资暗     岗位工资暗 

2010-06-01               张三     1000               500

2010-07-01               张三     1100               500

2010-08-01               张三     1100               600  

2010-06-01               李四     1200               600

2010-07-01               李四      1200               700

2010-08-01                李四      1300              700     

我要选出红色行的进行替换。用日期最大一个条件也可以。

这是高管要用的特殊岗位工资调整窗口,一般操作员这两列是隐藏的,   


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/11 19:40:00 [只看该作者]

 

Dim dr As DataRow
dr =
DataTables("调整工资").Find("姓名 = '张三'","调整时间 Desc")
If
dr IsNot Nothing Then 
    Output.Show(
"现基本工资暗:" & dr("现基本工资暗"))
    Output.Show(
"岗位工资暗:" & dr("岗位工资暗"))

End If


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/11 19:53:00 [只看该作者]

 可能这样就可以了吧:

Dim Max As Date = DataTables("调整工资").Compute("Max(调整时间)", "[姓名] =  '" & dd.text & "' ")

DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] =  '" & Max & "' ")


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/8/11 20:04:00 [只看该作者]

谢谢mr725兄,6楼代码搞定。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/11 20:25:00 [只看该作者]

其实5楼代码可以这样直接更新数据:

 

dr("现基本工资暗") = Forms("调整工资工龄暗").Controls("基本工资暗").text


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/11 20:44:00 [只看该作者]

调整时间列是日期型,Max前后应该加上#号。

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/8/11 21:27:00 [只看该作者]

这样也行:

DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] =  '" & Max & "' ")

按C版的意见也行,不过好像代码更正规,不然到什么时候出现问题还不知道,谢谢C版:

DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] =  #" & Max & "# ")


 回到顶部
总数 18 1 2 下一页