9744.html

来自「VB技巧问答10000例,是一个教程」· HTML 代码 · 共 23 行

HTML
23
字号
<html>
  <head>
    <title>Re: DBGrid...</title>
  </head>
  <body bgcolor="#FFFFFF" vlink="#808080">
    <center>
      <h1>Re: DBGrid...</h1>
    </center>
<hr size=7 width=75%>

<hr size=7 width=75%><p>
Posted by <a href="mailto:richard@mail.high-way.com.tw">richard</a> on February 01, 1999 at 16:05:01:<p>
In Reply to: <a href="9740.html">Re: DBGrid...</a> posted by VB新手 on February 01, 1999 at 15:06:42:<p>
: : : 再请问一下....我资料库的资料是每一小时自动加一笔资料(读循序档...)和系统时间<br>: : : 可是我想要让使用者选日期...然后就会出现当天24小时的资料..<br>: : : 不过有下列几个问题....<p>: : : 1.点选的东西...我用DBcomb(不知合不合适...)选日期..可是同一天却有24个项目可点...<br>: : :    因为一天有24笔资料..怎么解决..??<br>: : : 2.怎么让使用者选一天..然后出现当天24笔资料...??<p>: : : 请各位帮小弟解惑一下....想了一星期了..救救我吧<br>: : 选日期在VB60有monthview与dtpicker两控制项可用,而<br>: : 选一天出现24笔资料可用select ..... where ....指<br>: : 令即可挑出你要的资料,再指定给DBGRID(或Datagrid)<br>: : 即可<p>: 我用的是vb6.0专业版...有monthview和dtpicker这两个控制项吗??<br>: 刚刚找了一下..找不到...<p>那你可以用DBCOMBOX,下拉后有1至31(或配合Spinbutton<br>做微调),再用下面的程式检验日期是否正确(穷则变,变<br>则通,你也可以去找VB60的OCX来使用),这是讨论区之前<br>贴出的程式,可以用,你可以试试<p>'****日期格式检验并转换模组****<br>'说明:本模组专为含有日期内容文字盒检验设计<br>'使用方式:<br>'chkdate TextBox<br>'日期格式经过确认后,正确将传递其一公用变数 datechk=1,<br>'并自动将对象文字盒中之日期资料变更为 yyyy/mm/dd 格式<br>'错误将传递 datechk=0<br>'本模组使对象文字盒接受下列五种资料格式:<br>'yyyy/mm/dd 以表示 yyyy/mm/dd<br>'yyyy/m/dd 以表示个位数月份 如 1971/9/31<br>'yyyy/mm/d 以表示个位数日期 如 1971/09/4<br>'yyyy/m/d 以表示月份及日期均为个位数 如 1971/9/2<br>'yyyymmdd 以表示 yyyy/mm/dd<br>'所有格式经过验证通过,将自动转换对象文字盒内容为 yyyy/mm/dd 格式<br>Sub chkdate(chktxt As TextBox)<br>  If chktxt.Text = "" Then<br>    datechk = 1<br>    Exit Sub<br>  End If<br>  If IsNumeric(Left(chktxt.Text, 4)) <> True Then<br>    Call errinfo<br>    Exit Sub<br>  End If<p>  If Mid(chktxt.Text, 1, 2) <> "19" And Mid(chktxt.Text, 1, 2) <> "20" Then<br>    MsgBox "年格式为19XX,或者 20XX!", vbOKOnly, "日期格式错误"<br>    datechk = 0<br>    Exit Sub<br>  End If<p>  If Len(chktxt.Text) = 10 Then<br>    If Mid(chktxt.Text, 5, 1) <> "/" Or Mid(chktxt.Text, 8, 1) <> "/" Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    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<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 6, 1)) > 1 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 6, 1)) = 1 And Val(Mid(chktxt.Text, 7, 1)) > 2 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 9, 1)) > 3 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 9, 1)) = 3 And Val(Mid(chktxt.Text, 10, 1)) > 1 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    datechk = 1<br>    Exit Sub<br>    <br>  ElseIf Len(chktxt.Text) = 8 And Mid(chktxt.Text, 5, 1) <> "/" Then<br>  <br>    If IsNumeric(chktxt.Text) <> True Or Len(chktxt.Text) <> 8 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 5, 1)) > 1 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 5, 1)) = 1 And Val(Mid(chktxt.Text, 6, 1)) > 2 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 7, 1)) > 3 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 7, 1)) = 3 And Val(Mid(chktxt.Text, 8, 1)) > 1 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    chktxt.Text = Left(chktxt.Text, 4) & "/" & Mid(chktxt, 5, 2) & "/" & Mid(chktxt, 7, 2)<br>    datechk = 1<br>    Exit Sub<p>  ElseIf Len(chktxt.Text) = 8 And Mid(chktxt.Text, 5, 1) = "/" Then<p>    If IsNumeric(Mid(chktxt.Text, 6, 1)) <> True Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Mid(chktxt.Text, 7, 1) = "/" And Mid(chktxt.Text, 6, 1) = "0" Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    chktxt.Text = Left(chktxt.Text, 4) & "/" & "0" & Mid(chktxt, 6, 1) & "/" & Mid(chktxt, 8, 2)<br>    datechk = 1<br>    Exit Sub<p>  ElseIf Len(chktxt.Text) = 9 And Mid(chktxt.Text, 5, 1) = "/" And Mid(chktxt.Text, 7, 1) = "/" Then<p>    If IsNumeric(Mid(chktxt.Text, 6, 1)) <> True Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If IsNumeric(Mid(chktxt.Text, 8, 2)) <> True Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If Val(Mid(chktxt.Text, 8, 2)) > 31 Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    chktxt.Text = Left(chktxt.Text, 4) & "/" & "0" & Mid(chktxt, 6, 1) & "/" & Mid(chktxt, 8, 2)<br>    datechk = 1<br>    Exit Sub<p>  ElseIf Len(chktxt.Text) = 9 And Mid(chktxt.Text, 5, 1) = "/" And Mid(chktxt.Text, 8, 1) = "/" Then<p>    If IsNumeric(Mid(chktxt.Text, 6, 2)) <> True Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    If IsNumeric(Mid(chktxt.Text, 9, 1)) <> True Or Mid(chktxt, 9, 1) = "0" Then<br>      Call errinfo<br>      Exit Sub<br>    End If<p>    chktxt.Text = Left(chktxt.Text, 4) & "/" & Mid(chktxt, 6, 2) & "/" & "0" & Mid(chktxt, 9, 2)<br>    datechk = 1<br>    Exit Sub<p>  Else<br>    Call errinfo<br>    Exit Sub<br>  End If<p>End Sub<br>Function errinfo()                 '日期检查函数所呼叫之程式<br>  MsgBox "日期格式错误!" + Chr$(13) + Chr$(10) + _<br>    "提示:" + Chr$(13) + Chr$(10) + _<br>    "请输入如右格式 19711026 以表示 1971/10/26"<br>  datechk = 0<br>End Function<p><br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 9744-->
</ul><!--end: 9744-->
<br><hr size=7 width=75%><p>

</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?