Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

更新表记录

yaxun  发表于:2008-06-02 15:52:54  
复制

请各位帮帮忙:

问题:比如有 员工基本资表和员工内部弃动两个表 当在员工内部弃动窗体中输入相关新的员工后,在员工基本资表中以与之相的员工ID更新相关的记录  如:

工资,职务 部门等字段的值

我是新手,做了好几次不成功.

请高手指点

 

Top
yefalai 发表于:2008-06-02 16:36:25
具体点  把你的代码发出来

yaxun 发表于:2008-06-03 08:12:01

你好

这是代码如下:

 

Private Sub 更新资料_Click()
On Error GoTo Err_更新资料_Click
'定义字符型变量
Dim STemp As String
Dim STEMP1 As String
'定义数据集变量
Dim rs As ADODB.Recordset
'为定义的数据集变量分配空间
Set rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
STemp = "Select * From 员工基本资料"
'打开“员工基本资”数据表
rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    '判断窗体中必填或文本框组合框是否为空
   
    If Forms![员工内部调动 子窗体]![原员工ID] = rs("员工ID") Then
        '如果必填文本框和组合框不为空
        '使用记录集的AddNew方法添加记录
        rs.AddNew
        '把窗体中文本框和组合框内的值赋予记录集中对应的字段
rs("员工ID") = Forms![员工内部调动 子窗体]![新员工ID]
rs("部门ID") = Forms![员工内部调动 子窗体]![新部门ID]
rs("职务") = Forms![员工内部调动 子窗体]![新职务]

rs("基本工资") = Forms![员工内部调动 子窗体]![新基本工资]


        '使用记录集的Update方法来刷新记录集
           rs.Update
      
        '弹出信息记录“添加完成”的提示信息
    
        MsgBox "员工基本资料更新完成!", vbYesNo, "更新资料完成"
       
   
       
    End If
   
   
    Set rs = Nothing
Exit_更新资料_Click:
    Exit Sub
Err_更新资料_Click:
    MsgBox Err.Description
    Resume Exit_更新资料_Click
End Sub



yefalai 发表于:2008-06-06 13:35:19

不好意思,这些天忙 没来!

你有写注释的好习惯,可如果写的太多注释或者无意义的注释,只会给阅读带来麻烦.不如简单几个字.

试想如果有人来改你的代码,想必此人有一定的基础.

你的代码中有中文,建议少用,用英文 或者干脆用拼音.这也可以养成习惯.

 

哈哈,有点以老卖老了 转正题: 你的代码(我去掉了注释,加了点自己的解释)和我的代码如下:

 

Dim STemp As String
    Dim STEMP1 As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

 

'=================你的代码  开始 =======================


    STemp = "Select * From 员工基本资料"
    rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic   '打开表"员工基本资料",比如说里面有10笔数据
   
    If Forms![员工内部调动 子窗体]![原员工ID] = rs("员工ID") Then   '这里会出现一种情况,无论你怎么运行,rs("员工ID")都是一固定一个值.而且是表"员工基本资料" 第一条记录的值. 这样自然你的判断已不是你要的意思.

 

'=================你的代码  结束 =======================

 

'=================我的代码  开始 =======================

 

    STemp = "Select * From 员工基本资料 " & "Where 员工ID='" & Forms![员工内部调动 子窗体]![原员工ID] & "'"
    rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic   '打开表"员工基本资料",比如说里面有10笔数据
    If rs.BOF And rs.EOF Then

 

'=================我的代码  结束 =======================


        rs.AddNew
        rs("员工ID") = Forms![员工内部调动 子窗体]![新员工ID]
        rs("部门ID") = Forms![员工内部调动 子窗体]![新部门ID]
        rs("职务") = Forms![员工内部调动 子窗体]![新职务]
       
        rs("基本工资") = Forms![员工内部调动 子窗体]![新基本工资]
        rs.Update
              
        MsgBox "员工基本资料更新完成!", vbYesNo, "更新资料完成"
    End If
    Set rs = Nothing


 

 

不知道是否能帮助你,如果可以请给我点 "最佳......"



总记录:3篇  页次:1/1 9 1 :