Office中国论坛/Access中国论坛

标题: 如何动态的使用子窗体的字段名 [打印本页]

作者: kent_73    时间: 2012-2-4 10:26
标题: 如何动态的使用子窗体的字段名
1、在查询中,如何使用动态字段名,并将查找结果在子窗体中显示
2、使用特定字段:me.子窗体名.字段名;那么使用动态字段该怎么写?
谢谢

[attach]48219[/attach]
作者: roych    时间: 2012-2-4 11:41
  1. Dim sWhere As String
  2. If Me.Combo4 <> "" And Me.Text6 <> "" Then
  3.     sWhere = "[" & Me.Combo4 & "] like '" & Me.Text6 & "'"
  4.     Me.子窗体.Form.Filter = sWhere
  5.     Me.子窗体.Form.FilterOn = True
  6. End If
复制代码

作者: kent_73    时间: 2012-2-4 12:59
本帖最后由 kent_73 于 2012-2-4 13:00 编辑
roych 发表于 2012-2-4 11:41


这个问题已经解决了,谢谢

还有一个问题,请看图片
text123是母窗体上的控件名,用于选择子窗体中的字段
当我用【Me.Child4!事假.Value】取到了子窗体中的值
那么怎么用动态的字段名,取到子窗体中的值?
谢谢



[attach]48221[/attach]
作者: roych    时间: 2012-2-4 15:03
本帖最后由 roych 于 2012-2-4 15:04 编辑

这里仍然以之前的附件为例,增加了窗体记录集的FindFirst方法。
  1. Dim sWhere As String, sWhere2 As String
  2. Dim rst As DAO.Recordset
  3. If Me.Combo4 <> "" And Me.Text6 <> "" Then
  4.     sWhere = "[" & Me.Combo4 & "] like '" & Me.Text6 & "'"
  5.     sWhere2 = Me.Combo4 & "= '" & Me.Text6 & "'"
  6.     Me.子窗体.Form.Filter = sWhere
  7.     Me.子窗体.Form.FilterOn = True
  8.     Set rst = Me.子窗体.Form.Recordset
  9.     rst.FindFirst sWhere2
  10.     MsgBox rst!住址
  11. End If
复制代码
这段代码仅能查找出第一条记录(请留意sWhere2和sWhere的区别)。如果要查找多条记录的值,则需要使用循环语句来处理。
作者: 小不点90    时间: 2012-2-4 16:18
喱个好啊....大家过来睇啊...
作者: kent_73    时间: 2012-2-6 09:09
roych 发表于 2012-2-4 15:03
这里仍然以之前的附件为例,增加了窗体记录集的FindFirst方法。这段代码仅能查找出第一条记录(请留意sWher ...

做了很长时间,实在不会做,我把实例传上,请斑竹帮助一下。

[attach]48225[/attach]
作者: ycxchen    时间: 2012-2-6 09:23
“如果要查找多条记录的值,则需要使用循环语句来处理。 ”版主,能否写出语句让我也学习一下?

作者: roych    时间: 2012-2-7 15:23
kent_73 发表于 2012-2-6 09:09
做了很长时间,实在不会做,我把实例传上,请斑竹帮助一下。

我觉得你把问题复杂化了~~
例如:
DoCmd.RunSQL "UPDATE Rq_考勤_员工出勤表_营业部_国贸 SET " & Me.text123 & " =" & Me.Text12
DoCmd.RunSQL "UPDATE Rq_考勤_员工出勤表_营业部_国贸 SET 白班 =" & 8 - Me.Text12
后面的条件请自行补充好。这里只是给个示例语句而已。

作者: kent_73    时间: 2012-2-7 15:52
谢谢,但实际情况是不能这样的
白班不能单纯的减去假期的。如果事先请假3小时(已经进入系统了,白班为5小时),但实际请假只有2小时(这时,白班=5+(3-2)=6小时);反之,实际请假4小时(这时,白班=5-(4-3)=4小时);如果请假时间还是按照事先的时间,但是由于误操作,这里的白班时间应该是不变的。
作者: p51219    时间: 2016-4-9 23:24
支持原创




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3