Access交流中心

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

当前表的某一字段输入时改变另一表相应字段的值

yufq  发表于:2012-11-05 13:46:06  
复制

如下问题请教

 

Top
沈军 发表于:2012-11-05 19:01:13
在窗体里面用程序好实现

yufq 发表于:2012-11-06 14:09:51

请帮忙写下窗体里面的程序,谢谢!



沈军 发表于:2012-11-06 16:56:21

建议1、修改表结构,将TBLZSMX表中的房号文本型改为数字型

建议2、建立两个表之间房号ID与房号的关系

建议3、在你使用的住房登记窗体 确定 按钮中增加事件代码,利用SQL语句自动执行更新语句,房有人住时“是否住人”=-1 ,相反=0,条件是FHID=ME!房号



yufq 发表于:2012-11-07 11:32:07

我编写如下代码:UPDATE tblcodefh SET fhzt='0 ' WHERE FHID=ME!房号

编译时提示语法错误!



沈军 发表于:2012-11-07 20:26:13

UPDATE tblcodefh SET fhzt=0 WHERE FHID=ME!房号

数值不要用''

上传一个附件吧,大家看看



沈军 发表于:2012-11-07 20:30:58

DoCmd.RunSQL"UPDATE tblcodefh SET fhzt=0 WHERE FHID=" & ME!房号

 



yufq 发表于:2012-11-08 10:59:27

表联接如下:

 

我在增加窗体加入楼主的代码,结果提示错误:

 

登记窗体代码如下

Private Sub cmd_Save()
    Dim rst As DAO.Recordset
   
    If IsNull(Me.lbID) Then
        MsgBox "请输入使用部门!", vbCritical, "提示:"
        Me.lbID.SetFocus
        Exit Sub
    End If
    If IsNull(Me.ygID) Then
        MsgBox "请输入姓名!", vbCritical, "提示:"
        Me.ygID.SetFocus
        Exit Sub
    End If
  
    If IsNull(Me.fhID) Then
        MsgBox "请输入房号!", vbCritical, "提示:"
        Me.fhID.SetFocus
        Exit Sub
    End If
    If IsNull(Me.lxdh) Then
        MsgBox "请输入联系电话!", vbCritical, "提示:"
        Me.lxdh.SetFocus
        Exit Sub
    End If
   
   
    Me.Refresh
    If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
        Set rst = CurrentDb.OpenRecordset("tblzsmx", dbOpenDynaset)
        rst.AddNew
        rst("mxId") = acchelp_autoid("SS", 10, "tblzsmx", "mxId")
     
        rst("lbId") = Me.lbID
        '注这里是lbid不是bxlb
        rst("ygId") = Me.ygID
     
        rst("fhID") = Me.fhID
       
        rst("fj") = Me.fj
        rst("jg") = Me.jg
        rst("kf") = Me.kf
        rst("jfsj") = Me.jfsj
        rst("lfsj") = Me.lfsj
        rst("lxdh") = Me.lxdh
        rst("bz") = Me.bz
        rst.Update
        rst.Close
        Set rst = Nothing
        '刷新数据
        If IsLoaded("usysfrmMain") Then
            DoCmd.Echo False
            Forms!usysfrmMain!frmChild.SourceObject = "frmzsmx_child"
            DoCmd.Echo True
        End If
        MsgBox "保存成功!", vbInformation, "提示"
    
        Me.lbID = Null
'注这里是lbid不是bxlb
        Me.ygID = Null
     
        Me.fhID = Null
         Me.fj = Null
          Me.jg = Null
        Me.kf = Null
         Me.jfsj = Null
          Me.lfsj = Null
           Me.lxdh = Null
            Me.bz = Null
    End If
 
 
   
   
End Sub

Private Sub cmdCancel_Click()
DoCmd.Close acForm, Me.Name
End Sub


Private Sub cmdOK_Click()
 DoCmd.RunSQL "UPDATE tblcodefh SET fhzt=0 WHERE fhmx=" & Me!fhID

cmd_Save
End Sub
Private Sub cmdBX_Click()
     DoCmd.OpenForm "frm_Codesybm_child_Add", , , , , acDialog
End Sub


Private Sub cmdYG_Click()
     DoCmd.OpenForm "frmjbr_child_Add", , , , , acDialog
End Sub

Private Sub lbId_AfterUpdate()
Me.lxdh.SetFocus

End Sub

Private Sub lbId_GotFocus()
Me.lbID.Dropdown

End Sub

Private Sub ygId_AfterUpdate()
Me.lbID.SetFocus

End Sub

Private Sub ygId_GotFocus()
Me.ygID.Dropdown

End Sub


 请教是怎么修改,谢谢!



yufq 发表于:2012-11-08 11:59:38

    红色部分的代码我修改成如下:  DoCmd.RunSQL "UPDATE tblcodefh SET fhzt=0 WHERE fhmx=fhID"

结果添加后提示如下:

不知道为什么更新数据只有0行



yufq 发表于:2012-11-08 14:16:04

现在改为如下代码: DoCmd.RunSQL "UPDATE tblcodefh SET fhzt=0 WHERE fhmx= 房号"

结果运行如下,要求输入房号参数,请问如何不用输入,直接引用当前的房号呐?谢谢!

 



沈军 发表于:2012-11-08 15:32:09
要确定条件中引用的控件名称是否正确?还要确认条件得值是数据型还是文本型,如果是文本型需要在前后加引号,注意连接符号与引号的配合使用 如:& "'" & 房号控件名称 & "'"

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