主题:求助——能够执行的vb 6.0工程生成exe文件时出了问题
spacebird
[专家分:0] 发布于 2008-01-19 19:58:00
无论是“文件->生成xx.exe”还是“运行->全编译执行”结果都是弹出提示“编译错误,当前范围内的声明重复”,这是什么原因?(点击“运行->启动”可以正常运行)
回复列表 (共4个回复)
沙发
FieldMAX [专家分:12740] 发布于 2008-01-19 20:21:00
找Dim 开头的地方,看看一个过程内是不是重复的声明了一个变量
当VB在调试阶段运行时不会对程序进行彻底的错误检查,但是在编译时将会检查
板凳
spacebird [专家分:0] 发布于 2008-01-19 21:21:00
出现问题的过程如下:
Public Function FirstFilter(ByVal rstSource As ADODB.Recordset, ByVal varFilter As Variant) As ADODB.Recordset
'Applies a filter to a recordset and removes the value of the Filter property of the recordset
Dim FirstFilter As ADODB.Recordset '这就是报错的一行
Dim rsFiltered As New ADODB.Recordset
Dim objSm As New Stream
' apply a filter
If (rstSource.Filter = 0) Then
rstSource.Filter = varFilter
' Save the recordset to a stream object in XML format
rstSource.Save objSm, adPersistXML
Else
' Save the recordset to a stream object in XML format
rstSource.Save objSm, adPersistXML
Set FirstFilter = New ADODB.Recordset
FirstFilter.Open objSm
FirstFilter.Filter = varFilter
FirstFilter.Save objSm, adPersistXML
FirstFilter.Close
Set FirstFilter = Nothing
End If
rsFiltered.Open objSm
objSm.Close
Set objSm = Nothing
Set FirstFilter = rsFiltered
End Function
请问在哪里重复声明了呢?
3 楼
btxdlibin [专家分:2430] 发布于 2008-01-19 21:36:00
Public Function FirstFilter(....) As ADODB.Recordset '这里有了
'Dim FirstFilter As ADODB.Recordset 这句删除
4 楼
spacebird [专家分:0] 发布于 2008-01-19 21:54:00
原来不能声明和过程同名的变量,我懂了
我来回复