100分寻求改正程序!

yangj8 2003-08-22 12:04:33
vb中调用带(begindate,enddate 8位datetime型)存储过程
代码如下:
Dim cnn1 As ADODB.Connection
Dim Command1 As ADODB.Command
Dim parm_begindate As ADODB.Parameter
Dim parm_enddate As ADODB.Parameter
Dim strCnn As String

Private Sub Command1_Click()
If Len(Text1.Text) <> 8 Then
MsgBox ("日期位数不对")
Exit Sub
End If
If Len(Text2.Text) <> 8 Then
MsgBox ("日期位数不对")
Exit Sub
End If

Set parm_begindate = New ADODB.Parameter
Set Command1 = New ADODB.Command
parm_begindate.Type = adDate
parm_begindate.Size = 8
parm_begindate.Direction = adParamInput
parm_begindate.Value = Format(Text2.Text, "yyyy-mm-dd")
Command1.Parameters.Append parm_begindate


Set parm_enddate = New ADODB.Parameter
parm_enddate.Type = adDate
parm_enddate.Size = 8
parm_enddate.Direction = adParamInput
parm_enddate.Value = Format(Text2.Text, "yyyy-mm-dd")
Command1.Parameters.Append parm_enddate

Command1.ActiveConnection = cnn1

Command1.CommandText = "RRR2"


Command1.CommandType = adCmdStoredProc



End Sub

Private Sub Form_Load()
Set cnn1 = New ADODB.Connection
cnn1.CursorLocation = adUseClient
strCnn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=SettleDB;Data Source=GNETDATA\GNETDATA"
cnn1.Open strCnn
If cnn1.State <> 1 Then
MsgBox "连接失败"
Exit Sub
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
cnn1.Close
Set cnn1 = Nothing
End Sub

运行时在format那一行显示溢出。
另外麻烦帮我看一下是否还有其他问题,如何改正!

...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
这个题问了好多次了.
dreamreality 2003-08-22
  • 打赏
  • 举报
回复
這個問題是因為控制面版分隔符的問題,你去控制面版里去改一下分隔符試試看,因為我也曾經遇到過這個問題,客戶原來的系統分隔符是'-'而我要求是'/'最后為了滿足客戶,程式里面與數據庫里面把所有的'/'替換成'-',然后才搞定的
caiyunxia 2003-08-22
  • 打赏
  • 举报
回复
parm_enddate.Value 与
Format(Text2.Text, "yyyy-mm-dd")
数据类型不匹配
zjcxc 2003-08-22
  • 打赏
  • 举报
回复
另外,你的定义与控件名有冲突:
Dim Command1 As ADODB.Command

zjcxc 2003-08-22
  • 打赏
  • 举报
回复
问题的根本原因出在日期格式上,如果你输入的日期不对的话,就会出错,所以最好的办法是判断输入的数据是否能转换成日期型.而不是判断输入的长度:

将判断语句改成下面的:

If isdate(Text1.Text)=false Then
MsgBox ("你输入的不是日期")
Exit Sub
End If
If isdate(Text2.Text)=false Then
MsgBox ("你输入的不是日期")
Exit Sub
End If
yangj8 2003-08-22
  • 打赏
  • 举报
回复
是啊,就是因为一直没有解决才一直问嘛,哪位大侠花点时间帮我给解决了,将不甚感激!

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧