VB中连接无法用于执行此操作,在此上下文中它可能已经被关闭 !急!!!!!
表结构为线路名站点排序这是一段代码,其他的也是类似的查询语句,第一次可以运行,点退出后再次进入显示连接无法用于执行此操作,在此上下文中它可能已经被关闭是不是最后那个循环的...
表结构为 线路名 站点 排序
这是一段代码,其他的也是类似的查询语句,第一次可以运行,点退出后再次进入显示连接无法用于执行此操作,在此上下文中它可能已经被关闭
是不是最后那个循环的问题?循环到num1?
MSFlexGrid1.Cols = 100
For i = 0 To 10
MSFlexGrid1.ColWidth(i) = 1500
MSFlexGrid1.ColAlignment(i) = flexAlignCenterCenter
Next i
MSFlexGrid1.RowHeight(0) = 400
MSFlexGrid1.TextMatrix(0, 0) = " 线路名"
MSFlexGrid1.TextMatrix(0, 1) = " 站点1"
MSFlexGrid1.TextMatrix(0, 2) = " 站点2"
MSFlexGrid1.TextMatrix(0, 3) = " 站点3"
MSFlexGrid1.TextMatrix(0, 4) = " 站点4"
MSFlexGrid1.TextMatrix(0, 5) = " 站点5"
MSFlexGrid1.TextMatrix(0, 6) = " 站点6"
MSFlexGrid1.TextMatrix(0, 7) = " 站点7"
MSFlexGrid1.TextMatrix(0, 8) = " 站点8"
MSFlexGrid1.TextMatrix(0, 9) = " 站点9"
MSFlexGrid1.TextMatrix(0, 10) = "站点10"
intRow = 1
strSql1 = "SELECT * FROM 公交线路 Where 线路名='" & Trim(search1) & "' order by 排序"
Set rst = Query(strSql1)
num1 = rst.RecordCount
While Not rst.EOF()
MSFlexGrid1.Rows = intRow + 1
MSFlexGrid1.RowHeight(intRow) = 400
MSFlexGrid1.Row = intRow
If intRow Mod 2 = 1 Then
For k = 0 To 10
MSFlexGrid1.Col = k
MSFlexGrid1.CellBackColor = &HFFFFC0
Next k
Else
For k = 0 To 10
MSFlexGrid1.Col = k
MSFlexGrid1.CellBackColor = &HC0E0FF
Next k
End If
MSFlexGrid1.TextMatrix(intRow, 0) = rst.Fields(0)
For j = 1 To num1
MSFlexGrid1.TextMatrix(intRow, j) = rst.Fields(1)
rst.MoveNext
Next j
intRow = intRow + 1
Wend 展开
这是一段代码,其他的也是类似的查询语句,第一次可以运行,点退出后再次进入显示连接无法用于执行此操作,在此上下文中它可能已经被关闭
是不是最后那个循环的问题?循环到num1?
MSFlexGrid1.Cols = 100
For i = 0 To 10
MSFlexGrid1.ColWidth(i) = 1500
MSFlexGrid1.ColAlignment(i) = flexAlignCenterCenter
Next i
MSFlexGrid1.RowHeight(0) = 400
MSFlexGrid1.TextMatrix(0, 0) = " 线路名"
MSFlexGrid1.TextMatrix(0, 1) = " 站点1"
MSFlexGrid1.TextMatrix(0, 2) = " 站点2"
MSFlexGrid1.TextMatrix(0, 3) = " 站点3"
MSFlexGrid1.TextMatrix(0, 4) = " 站点4"
MSFlexGrid1.TextMatrix(0, 5) = " 站点5"
MSFlexGrid1.TextMatrix(0, 6) = " 站点6"
MSFlexGrid1.TextMatrix(0, 7) = " 站点7"
MSFlexGrid1.TextMatrix(0, 8) = " 站点8"
MSFlexGrid1.TextMatrix(0, 9) = " 站点9"
MSFlexGrid1.TextMatrix(0, 10) = "站点10"
intRow = 1
strSql1 = "SELECT * FROM 公交线路 Where 线路名='" & Trim(search1) & "' order by 排序"
Set rst = Query(strSql1)
num1 = rst.RecordCount
While Not rst.EOF()
MSFlexGrid1.Rows = intRow + 1
MSFlexGrid1.RowHeight(intRow) = 400
MSFlexGrid1.Row = intRow
If intRow Mod 2 = 1 Then
For k = 0 To 10
MSFlexGrid1.Col = k
MSFlexGrid1.CellBackColor = &HFFFFC0
Next k
Else
For k = 0 To 10
MSFlexGrid1.Col = k
MSFlexGrid1.CellBackColor = &HC0E0FF
Next k
End If
MSFlexGrid1.TextMatrix(intRow, 0) = rst.Fields(0)
For j = 1 To num1
MSFlexGrid1.TextMatrix(intRow, j) = rst.Fields(1)
rst.MoveNext
Next j
intRow = intRow + 1
Wend 展开
2个回答
展开全部
提示错误到哪一行了?是不是
Set rst = Query(strSql1)
这句话出错了??
是的话就是你Sql有问题。
strSql1 = "SELECT * FROM 公交线路 Where 线路名='" & Trim(search1) & "' order by 排序"
这句话可能实际拼写出来的Sql有问题。你打印出来字符串strSql1的值复制到查询分析器里执行以下实验一下。就知道啥问题了。可能字段不存在,也可能是你连接库错了。
Set rst = Query(strSql1)
这句话出错了??
是的话就是你Sql有问题。
strSql1 = "SELECT * FROM 公交线路 Where 线路名='" & Trim(search1) & "' order by 排序"
这句话可能实际拼写出来的Sql有问题。你打印出来字符串strSql1的值复制到查询分析器里执行以下实验一下。就知道啥问题了。可能字段不存在,也可能是你连接库错了。
追问
这句话没错,'定义执行查询的函数
Public Function Query(ByVal SQL As String) As ADODB.Recordset
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open SQL, cnn, adOpenKeyset, adLockOptimistic
Set Query = rst
End Function
这是公共模块中的数据库查询部分,错误指向rst.Open SQL, cnn, adOpenKeyset, adLockOptimistic
追答
那样的话,可能错误的原因:
1,Sql有问题。将sql拼出来放到查询分析器执行一下 试试
2,Cnn连接对象的参数设定是否正常。正常的话是否数据连接正常打开??
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询