Foxtable(狐表)用户栏目专家坐堂 → [求助窗体按钮事件代码(已上传测试实例)


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

主题:[求助窗体按钮事件代码(已上传测试实例)

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助窗体按钮事件代码(已上传测试实例)  发帖心情 Post By:2019/3/28 14:35:00 [只看该作者]

老师们好!窗体按钮代码请老师帮助修正。

        想整体实现的功能是:对所选择的“职工基础信息”表当前行(即姓名为xxx的员工)的删除。但在删除前,要先选定“离职原因”和“离职时间”并存储在变量Ly1、Ls1中,然后点击“确定”按钮后,将选定行(即姓名为xxx的员工)由当前表“职工基础信息”复制到“历史信息”表,同时并将变量Ly1、Ls1的值在不打开“历史信息”表的情况下写入“历史信息”表的“离职原因”、“离职时间”列中。上述工作完成后,再将其删除。
      但实在是代码小白,所有代码都是通过论坛东拼西凑和看实例所得的单项功能代码,后经老师修改指导而来的。本小白弄不到一起来实现想要的完整功能,还得麻烦老师帮忙。先谢谢老师了!

实例已上传。 3楼。

[此贴子已经被作者于2019/3/28 18:37:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/28 15:04:00 [只看该作者]

上传具体实例测试。

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/3/28 17:03:00 [只看该作者]

谢谢老师。

      现在,“离职原因” 各单选框和“离职时间”的选择已实现,已能分别将值赋给变量“Ly1”、“Ls1”(通过“msgbox()”查看返回值正确);    剩下的按指定条件(当前行“姓名”)复制数据的代码,以及将变量“Ly1”、“Ls1”的值写入“历史信息”表的代码不对,请老师帮助。谢谢!

实例如下。


[此贴子已经被作者于2019/3/28 20:44:06编辑过]

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/3/28 18:43:00 [只看该作者]

请老师给看看,帮助指导一下。谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/28 18:56:00 [只看该作者]

'以下"RadioButton1"(单选框)选择"离职原因"
Dim Ly1 As String    
If e.Form.Controls("RadioButton1").Checked = True   '如果选择了"到龄退休"
    Ly1 = "到龄退休"   
End If
If e.Form.Controls("RadioButton2").Checked = True   '如果选择了"个人辞职"
    Ly1 = "个人辞职"
End If
If e.Form.Controls("RadioButton3").Checked = True   '如果选择了"公司辞退"
    Ly1 = "公司辞退"
End If

'以下选择"离职时间"
Dim Ls1 As String         
With e.Form.Controls("DateTimePicker1")
    Ls1 = .Value
End With

'以下将当前选定行从"员工信息"表复制到"历史信息"表,同时并将变量Ly1和Ls1的值在不打开"历史信息"表的情况下写入"历史信息"表的"离职原因"?"离职时间"列中
Dim cr As Row = Tables("员工信息").current
Dim ndr As DataRow = DataTables("历史信息").addnew                                            '指定数据接收表
ndr("姓名") = cr("姓名")
ndr("性别") = cr("性别")
ndr("民族") = cr("民族")
ndr("籍贯") = cr("籍贯")
ndr("离职原因") = ly1
ndr("离职时间") = ls1

cr.Delete      '删除选定行

Forms("确认离职").close    '关闭窗口


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/3/28 20:24:00 [只看该作者]

谢谢老师帮助。再麻烦请教老师,如果是复制“员工信息”表的所有列到“历史信息”表,再将变量“Ly1”、“Ls1”的值写入“历史信息”表的“离职原因”、“离职时间”列,这样的话,红色部分代码要如何改。因为实际使用的表有四十多列,一列一列的指定是不是代码太长了(但前提是如果能简化代码的话)。谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/28 22:09:00 [只看该作者]

参考代码

 

'以下"RadioButton1"(单选框)选择"离职原因"
Dim Ly1 As String
If e.Form.Controls("RadioButton1").Checked = True   '如果选择了"到龄退休"
    Ly1 = "到龄退休"
End If
If e.Form.Controls("RadioButton2").Checked = True   '如果选择了"个人辞职"
    Ly1 = "个人辞职"
End If
If e.Form.Controls("RadioButton3").Checked = True   '如果选择了"公司辞退"
    Ly1 = "公司辞退"
End If

'以下选择"离职时间"
Dim Ls1 As String
With e.Form.Controls("DateTimePicker1")
    Ls1 = .Value
End With

'以下将当前选定行从"员工信息"表复制到"历史信息"表,同时并将变量Ly1和Ls1的值在不打开"历史信息"表的情况下写入"历史信息"表的"离职原因"?"离职时间"列中
Dim cr As Row = Tables("员工信息").current
Dim ndr As DataRow = DataTables("历史信息").addnew                                            '指定数据接收表
For Each c As Col In cr.Table.Cols
    If ndr.DataTable.DataCols.Contains(c.name) Then
        ndr(c.name) = cr(c.name)
    End If
Next
ndr("离职原因") = ly1
ndr("离职时间") = ls1

cr.Delete      '删除选定行

Forms("确认离职").close    '关闭窗口


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/3/28 23:24:00 [只看该作者]

老师辛苦了,这么晚了还在帮助和指导,真心感谢。谢谢!

 回到顶部