Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共18 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:替换代码问题

1楼
wqc360 发表于: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

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

2楼
mr725 发表于:2010/8/11 18:22:00
Max 指什么?
3楼
mr725 发表于:2010/8/11 18:44:00

或许你要定义一下:

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

4楼
wqc360 发表于: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     

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

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

5楼
mr725 发表于: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

6楼
mr725 发表于:2010/8/11 19:53:00

 可能这样就可以了吧:

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

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

7楼
wqc360 发表于:2010/8/11 20:04:00
谢谢mr725兄,6楼代码搞定。
8楼
mr725 发表于:2010/8/11 20:25:00

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

 

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

9楼
czy 发表于:2010/8/11 20:44:00
调整时间列是日期型,Max前后应该加上#号。
10楼
wqc360 发表于: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 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02539 s, 2 queries.