请教一个简单问题
有段程序代码在sql server数据库时可以编译通过,但是换成access数据库时
就会出错,说是对象变量或是with变量未设置。其中提示mrc=nothing,MsgText提示为
查询错误,至少有一个参数没有被指定值。是不是sql语句的问题?
还请各位高手为小弟指点迷津,不胜感激!!!代码如下:
txtSQL = "select distinct datepart(yy,wxdate) from repair"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then
' If Not mrc.EOF Then
With mrc
Do While Not .EOF
cboYear(0).AddItem .Fields(0)
cboYear(1).AddItem .Fields(0)
.MoveNext
Loop
End With
For i = 0 To 1
cboYear(i).ListIndex = 0
Next i
For i = 0 To 1
For j = 1 To 12
cboMonth(i).AddItem j
Next j
Next i
For i = 0 To 1
cboMonth(i).Text = Month(Now())
Next i
Else
cmdOk.Enabled = False
End If
问题点数:30、回复次数:9Top
1 楼eports(飘零风)回复于 2003-12-03 22:53:52 得分 5
If mrc.EOF Then
' If Not mrc.EOF Then
With mrc
Do While Not .EOF
这几句让我糊涂。为什么要注释掉第二句?第一句和第四句不是完全相反的判断吗?这样当然会导致 mrc=Nothing了。我的理解,程序应该是这样的:
' If mrc.EOF Then '<--把这句注释掉
If Not mrc.EOF Then '<--应该执行这句
With mrc
Do While Not .EOF
cboYear(0).AddItem .Fields(0)
cboYear(1).AddItem .Fields(0)
.MoveNext
Loop
End With
……Top
2 楼wayuf(北极星)回复于 2003-12-03 23:07:29 得分 0
那两条语句,那是小弟为了解决问题所做的尝试。If mrc.EOF Then
' If Not mrc.EOF Then 。两条语句功能一样,我想是否改一下就好用,但是
还是出现同样的错误。另外,把 If Not mrc.EOF Then 改为If mrc.EOF = False Then
还是出现相同的错误。 小弟实在很着急,还请高手不吝赐教,如果分不够的话,可以加
Top
3 楼wayuf(北极星)回复于 2003-12-03 23:12:01 得分 0
这个问题是不是由于使用不同的数据库所致,为什么在sql server数据库下编译通过,而在
access数据库下出现错误呢?Top
4 楼xayzmb(行者)回复于 2003-12-04 08:40:38 得分 10
我觉得你应该查查生成的SQL语句
把它在ACCESS中执行一下
看能不能通过?Top
5 楼SoHo_Andy(冰)回复于 2003-12-04 09:00:17 得分 5
单独执行这一句不通过
最可能Access不支持 datepart 语句
select distinct datepart(yy,wxdate) from repairTop
6 楼wayuf(北极星)回复于 2003-12-04 09:27:49 得分 0
多谢楼上指点
select distinct datepart("yyyy" ,wxdate) from repair
在access查询中,可以生成查询结果
但是当在vb程序中付值给
txtsql="select distinct datepart("yyyy" ,wxdate) from repair"
进行查询时总是出错,我想是不是在引号中又加引号的原因导致
还请高手指点迷津 应该怎么修改Top
7 楼jpinglee(想去海边)回复于 2003-12-04 21:05:29 得分 5
txtsql="select distinct date(wxdate) from repair"Top
8 楼chao778899(220330)回复于 2003-12-04 21:13:24 得分 5
select distinct datepart("yyyy",'"+wxdate+"') from repairTop
9 楼wayuf(北极星)回复于 2003-12-04 21:42:50 得分 0
经过努力,问题终于解决了
给分拉!!!Top




