以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于按钮代码加载数据(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15692)

--  作者:yyzlxc
--  发布时间:2012/1/6 15:05:00
--  [求助]关于按钮代码加载数据(已解决)

一段按钮代码,用于生成当月的车间名册,代码存在两个问题:1、当组合框空白时,为什么应出现“请选择部门”的提示而没有出现提示;2、人员数据表中,符合条件但离厂日期列为空白的数据如何能够加载到车间名册表中。请各位老师指教,谢谢!!

 

Dim mydate As Date = Forms("车间名册").Controls("DateTimePicker1").Text
Dim bm As String = Forms("车间名册").Controls("ComboBox1").Text
Dim y As Integer = mydate.Year
Dim m As Integer = mydate.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim yd As Date = New Date(y,m,Days) \'月底日期
Dim yc As Date = New Date(y,m,1)  \'月初日期
Dim ny As String = format( mydate,"yyyy-MM")
\'删除所有行
DataTables("车间名册").DeleteFor("[编号] Is Not Null ")
\'加载表
Dim f As New Filler
f.SourceTable = DataTables("人员数据") \'指定数据来源
f.SourceCols = "编号,姓名,当前部门" \'指定数据来源列
f.DataTable = DataTables("车间名册") \'指定数据接收表
f.DataCols = "编号,姓名,部门" \'指定数据接收列
If bm IsNot Nothing Then
    f.Filter="[当前部门]= \'"& bm & "\'and [离厂日期]>= \'"& yc & "\' and [进厂日期]<= \'"& yd &"\'"
Else
    MessageBox.Show("请选择部门","提示")
    Return
End If
f.Fill() \'填充数据
Tables("车间名册").AutoSizeCols()
Tables("车间名册").Sort = "编号"
DataTables("车间名册").DataCols("编号").RaiseDataColChanged()

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目177.table

[此贴子已经被作者于2012-1-6 19:20:36编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/1/6 15:12:00
--  
Dim mydate As Date = Forms("车间名册").Controls("DateTimePicker1").Text
Dim bm As String = Forms("车间名册").Controls("ComboBox1").Text
Dim y As Integer = mydate.Year
Dim m As Integer = mydate.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim yd As Date = New Date(y,m,Days) \'月底日期
Dim yc As Date = New Date(y,m,1)  \'月初日期
Dim ny As String = format( mydate,"yyyy-MM")
\'删除所有行
DataTables("车间名册").DeleteFor("[编号] Is Not Null ")
\'加载表
Dim f As New Filler
f.SourceTable = DataTables("人员数据") \'指定数据来源
f.SourceCols = "编号,姓名,当前部门" \'指定数据来源列
f.DataTable = DataTables("车间名册") \'指定数据接收表
f.DataCols = "编号,姓名,部门" \'指定数据接收列
If bm > ""
    f.Filter="[当前部门]= \'"& bm & "\'and [离厂日期]>= \'"& yc & "\' and [进厂日期]<= \'"& yd &"\' And [离厂日期] Is Not NuLL"
Else
    MessageBox.Show("请选择部门","提示")
    Return
End If
f.Fill() \'填充数据
Tables("车间名册").AutoSizeCols()
Tables("车间名册").Sort = "编号"
DataTables("车间名册").DataCols("编号").RaiseDataColChanged()

--  作者:yyzlxc
--  发布时间:2012/1/6 15:26:00
--  
谢谢狐爸老师的指教,第一个问题已经解决,第二个问题好像还不行,效果与原来的一样,没有将离厂日期空白的数据加载进来。还请狐爸老师帮助看看,谢谢!!
--  作者:狐狸爸爸
--  发布时间:2012/1/6 15:29:00
--  

应该自己琢磨的:

 

 f.Filter="[当前部门]= \'"& bm & "\' and ([离厂日期]>= \'" & yc & "\'  Or [离厂日期] Is NuLL) and [进厂日期]<= \'" & yd & “‘”


--  作者:yyzlxc
--  发布时间:2012/1/6 15:41:00
--  
谢谢狐爸老师的指教,第二个问题圆满解决。万分感谢!!
[此贴子已经被作者于2012-1-6 19:19:55编辑过]