每次运行时都会出现“系统关闭时不容许操作”请大家帮忙纠正!!!谢谢
这是我模块的代码:
Public adoCon As New ADODB.Connection
Public adoRs As New ADODB.Recordset
Public adoRs1 As New ADODB.Recordset
Public adoRs2 As New ADODB.Recordset Public Sub main()
Dim temp As String
temp = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ck;Data Source=liuping-727f568"
adoCon.Open (temp)
End Sub
这是我窗体代码:
Private Sub Command1_Click()
Call main
adoCon.Open "select * from pand"
Set adoRs = adoCon.Execute("update pand set pand.本月返修入库=cryd.fx from pand,(select 料号,sum( 出入数量)as fx from cryd where datediff(m, 出入时间,getdate())<=1 and 仓库号='" & Trim(Text1.Text) & "' and 出入类型 like '%返修入库'group by 料号) as cryd where pand.料号=cryd.料号") Set adoRs = adoCon.Execute("update pand set pand.本月领用出库=0-cryd.fx from pand,(select 料号,sum( 出入数量)as fx from cryd where datediff(m, 出入时间,getdate())<=1 and 仓库号='" & Trim(Text1.Text) & "' and 出入类型 like '%领用出库'group by 料号) as cryd where pand.料号=cryd.料号 ") 还有多条像以上这样的更新语句,这里不一一列举,但语句绝对正确
adoCon.Close
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from pand"
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh
End Sub
这是我模块的代码:
Public adoCon As New ADODB.Connection
Public adoRs As New ADODB.Recordset
Public adoRs1 As New ADODB.Recordset
Public adoRs2 As New ADODB.Recordset Public Sub main()
Dim temp As String
temp = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ck;Data Source=liuping-727f568"
adoCon.Open (temp)
End Sub
这是我窗体代码:
Private Sub Command1_Click()
Call main
adoCon.Open "select * from pand"
Set adoRs = adoCon.Execute("update pand set pand.本月返修入库=cryd.fx from pand,(select 料号,sum( 出入数量)as fx from cryd where datediff(m, 出入时间,getdate())<=1 and 仓库号='" & Trim(Text1.Text) & "' and 出入类型 like '%返修入库'group by 料号) as cryd where pand.料号=cryd.料号") Set adoRs = adoCon.Execute("update pand set pand.本月领用出库=0-cryd.fx from pand,(select 料号,sum( 出入数量)as fx from cryd where datediff(m, 出入时间,getdate())<=1 and 仓库号='" & Trim(Text1.Text) & "' and 出入类型 like '%领用出库'group by 料号) as cryd where pand.料号=cryd.料号 ") 还有多条像以上这样的更新语句,这里不一一列举,但语句绝对正确
adoCon.Close
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from pand"
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh
End Sub
改成
Call adoCon.Execute(...)UPDATE 是不返回纪录集的。
adoCon.Open "select * from pand"
Update语句是不返回记录集的
所以此时adoCon对象仍然是关闭的
既然adoCon对象本来就是关闭的,你再执行adoCon.Close就会出现错误把adoCon.Close去掉
应该可以解决
adoCon 前面你知道写连接字符 这里面写SQL语句干什么呢?
adoCon.Open "select " 很可能重新连接数据库,可是给的 ConnectionString 不对,无法连接,状态就变成关闭的。
Call main Set adoRs = adoCon.Execute(...)
adoCon.CloseSet adoRs = adoCon.Execute(...)
adoCon.CloseSet adoRs = adoCon.Execute(...)
adoCon.CloseAdodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from pand"
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh End Sub
adoCon.Close adoRs.open sql, adoCon
adoCon.Close adoRs.open sql, adoCon
adoCon.Close adoRs.open sql, adoCon
adoCon.Close adoRs.open sql, adoCon
adoCon.Close adoRs.open sql, adoCon
adoCon.Close 还有VB提示错误 至少要告诉大家错误在哪一行