# Re: DBGrid...

Posted by richard on February 01, 1999 at 15:59:22:

In Reply to: Re: DBGrid... posted by VB新手 on February 01, 1999 at 15:06:42:

: : : 再请问一下....我资料库的资料是每一小时自动加一笔资料(读循序档...)和系统时间
: : : 可是我想要让使用者选日期...然后就会出现当天24小时的资料..
: : : 不过有下列几个问题....

: : : 1.点选的东西...我用DBcomb(不知合不合适...)选日期..可是同一天却有24个项目可点...
: : : 因为一天有24笔资料..怎么解决..??
: : : 2.怎么让使用者选一天..然后出现当天24笔资料...??

: : : 请各位帮小弟解惑一下....想了一星期了..救救我吧
: : 选日期在VB60有monthview与dtpicker两控制项可用,而
: : 选一天出现24笔资料可用select ..... where ....指
: : 令即可挑出你要的资料,再指定给DBGRID(或Datagrid)
: : 即可

: 我用的是vb6.0专业版...有monthview和dtpicker这两个控制项吗??
: 刚刚找了一下..找不到...

那你可以用DBCOMBOX,下拉后有1至31(或配合Spinbutton
做微调),再用下面的程式检验日期是否正确(穷则变,变
则通,你也可以去找VB60的OCX来使用),这是讨论区之前
贴出的程式,可以用,你可以试试

'****日期格式检验并转换模组****
'说明:本模组专为含有日期内容文字盒检验设计
'使用方式:
'chkdate TextBox
'日期格式经过确认后,正确将传递其一公用变数 datechk=1,
'并自动将对象文字盒中之日期资料变更为 yyyy/mm/dd 格式
'错误将传递 datechk=0
'本模组使对象文字盒接受下列五种资料格式:
'yyyy/mm/dd 以表示 yyyy/mm/dd
'yyyy/m/dd 以表示个位数月份 如 1971/9/31
'yyyy/mm/d 以表示个位数日期 如 1971/09/4
'yyyy/m/d 以表示月份及日期均为个位数 如 1971/9/2
'yyyymmdd 以表示 yyyy/mm/dd
'所有格式经过验证通过,将自动转换对象文字盒内容为 yyyy/mm/dd 格式
Sub chkdate(chktxt As TextBox)
If chktxt.Text = "" Then
datechk = 1
Exit Sub
End If
If IsNumeric(Left(chktxt.Text, 4)) <> True Then
Call errinfo
Exit Sub
End If

If Mid(chktxt.Text, 1, 2) <> "19" And Mid(chktxt.Text, 1, 2) <> "20" Then
MsgBox "年格式为19XX,或者 20XX!", vbOKOnly, "日期格式错误"
datechk = 0
Exit Sub
End If

If Len(chktxt.Text) = 10 Then
If Mid(chktxt.Text, 5, 1) <> "/" Or Mid(chktxt.Text, 8, 1) <> "/" Then
Call errinfo
Exit Sub
End If

If IsNumeric(Mid(chktxt.Text, 6, 2)) <> True Or IsNumeric(Mid(chktxt.Text, 6, 2)) <> True Or IsNumeric(Mid(chktxt.Text, 9, 2)) <> True Then
Call errinfo
Exit Sub
End If

If Val(Mid(chktxt.Text, 6, 1)) > 1 Then
Call errinfo
Exit Sub
End If

If Val(Mid(chktxt.Text, 6, 1)) = 1 And Val(Mid(chktxt.Text, 7, 1)) > 2 Then
Call errinfo
Exit Sub
End If

If Val(Mid(chktxt.Text, 9, 1)) > 3 Then
Call errinfo
Exit Sub
End If

If Val(Mid(chktxt.Text, 9, 1)) = 3 And Val(Mid(chktxt.Text, 10, 1)) > 1 Then
Call errinfo
Exit Sub
End If

datechk = 1
Exit Sub
ElseIf Len(chktxt.Text) = 8 And Mid(chktxt.Text, 5, 1) <> "/" Then
If IsNumeric(chktxt.Text) <> True Or Len(chktxt.Text) <> 8 Then
Call errinfo%0

Follow Ups:

- Re: DBGrid... VB新手 19:03:03 2/01/99 (1)
  - Re: DBGrid... VB新手 12:01:31 2/02/99 (0)