以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLserver问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40253) |
||||
-- 作者:zhangxl1964 -- 发布时间:2013/9/13 9:02:00 -- SQLserver问题 老师:在SQLserver数据库中如何实现,从后台将另一个表中的某几个字段的记录有条件的引用到指定表中。关键是从后台引用! |
||||
-- 作者:Bin -- 发布时间:2013/9/13 9:04:00 -- 看得不是很懂, 查询某几个字段可以 select 字段1,字段2,字段3 from 表A 带条件 select 字段1,字段2,字段3 from 表A where 字段4=5
|
||||
-- 作者:zhangxl1964 -- 发布时间:2013/9/13 9:13:00 -- Dim conn As New ADODB.Connection Dim ConnString As String Dim sql As String Dim rs As New ADODB.Recordset Dim QueryMonth As Date \'自定义日期 Dim StartMonth As Date \'月份第一天 Dim Num As Integer \'员工编号 Dim dr2 As DataRow =e.DataRow If e.DataRow("审核") = False And e.DataCol.Name = "编号" Then If e.DataCol.Name= "日期" Or e.DataCol.Name= "编号" C If conn.state <> 1 Then conn.Open (ConnString) End If Num=e.DataRow("编号") QueryMonth=e.DataRow("日期") StartMonth=CStr(Year(QueryMonth)) & "-" & CStr(Month(QueryMonth)) & "-1" sql="select * from 合同记录 A where A.[编号]="& num & " And A.[登记月份]<=#" & QueryMonth & "# And (A.[辞退日期] Is null Or A.[辞退日期] >=#" & startmonth & "#) And A.[登记月份]=(Select max(合同记录.[登记月份]) As 登记月份 from 合同记录 where 合同记录.[编号]=" & num & " and 合同记录.[登记月份]<=#" & QueryMonth &"#)" rs.Open (sql, conn,1,1) If rs.RecordCount<>0 e.DataRow("姓名")=rs.Fields("姓名").Value e.DataRow("部门")=rs.Fields("部门").Value e.DataRow("班组")=rs.Fields("班组").Value e.DataRow("基本工资")=rs.Fields("基本工资").Value e.DataRow("月度考核")=rs.Fields("月度考核").Value e.DataRow("公积金")=rs.Fields("公积金").Value e.DataRow("社会保险")=rs.Fields("社会保险").Value e.DataRow("独生费")=rs.Fields("独生费").Value End If End If rs.Close()
|
||||
-- 作者:Bin -- 发布时间:2013/9/13 9:15:00 -- 你这个直接设置数据源 使用SQLCOMMAND即可实现.没必要引用第三方. 另外没发现你代码的问题啊. 还是不懂你意思. |
||||
-- 作者:zhangxl1964 -- 发布时间:2013/9/13 9:19:00 -- 刚才漏了一段 Dim conn As New ADODB.Connection Dim ConnString As String Dim sql As String Dim rs As New ADODB.Recordset Dim QueryMonth As Date \'自定义日期 Dim StartMonth As Date \'月份第一天 Dim Num As Integer \'员工编号 If e.DataRow("审核") = False And e.DataCol.Name = "编号" Then If e.DataCol.Name= "日期" Or e.DataCol.Name= "编号" C If conn.state <> 1 Then conn.Open (ConnString) End If Num=e.DataRow("编号") QueryMonth=e.DataRow("日期") StartMonth=CStr(Year(QueryMonth)) & "-" & CStr(Month(QueryMonth)) & "-1" sql="select * from 合同记录 A where A.[编号]="& num & " And A.[登记月份]<=#" & QueryMonth & "# And (A.[辞退日期] Is null Or A.[辞退日期] >=#" & startmonth & "#) And A.[登记月份]=(Select max(合同记录.[登记月份]) As 登记月份 from 合同记录 where 合同记录.[编号]=" & num & " and 合同记录.[登记月份]<=#" & QueryMonth &"#)" rs.Open (sql, conn,1,1) If rs.RecordCount<>0 e.DataRow("姓名")=rs.Fields("姓名").Value e.DataRow("部门")=rs.Fields("部门").Value e.DataRow("班组")=rs.Fields("班组").Value e.DataRow("基本工资")=rs.Fields("基本工资").Value e.DataRow("月度考核")=rs.Fields("月度考核").Value e.DataRow("公积金")=rs.Fields("公积金").Value e.DataRow("社会保险")=rs.Fields("社会保险").Value e.DataRow("独生费")=rs.Fields("独生费").Value End If End If rs.Close() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/9/13 11:32:00 -- 简单点,用临时表处理更新:
http://www.foxtable.com/help/topics/2724.htm
|