下面是vb和sql数据库结合的代码,点击按钮原意想通过判断条件后,改变sql数据库中的值,可点击按钮后无反应,求解答
Private Sub Command11_Click()
Dim i As Integer
Adodc11.RecordSource = "select * from PROCESS where jczhuangtai=0"
Adodc11.Refresh
i = Adodc11.Recordset.RecordCount
If i = 0 Then
MsgBox "机器中无可分配的进程!", vbExclamation, "提示信息"
Else
If i > 2 Then
MsgBox "机器中可分配进程超过2个!", vbExclamation, "提示信息"
Else
If i = 1 Then
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim str As String
Adodc11.RecordSource = "select * from PROCESS where jczhuangtai=0"
Adodc11.Refresh
If IsNull(Adodc11.Recordset("number1")) Then
x = 0
Else
x = Adodc11.Recordset("number1")
End If
If IsNull(Adodc11.Recordset("number2")) Then
y = 0
Else
y = Adodc11.Recordset("number2")
End If
If IsNull(Adodc11.Recordset("number3")) Then
z = 0
Else
z = Adodc11.Recordset("number3")
End If
Adodc11.RecordSource = "select * from CHCT where shebeiliexing='input'and zhuangtai2=0"
Adodc11.Refresh
Adodc12.RecordSource = "select * from CHCT where shebeiliexing='output'and zhuangtai2=0"
Adodc12.Refresh
Adodc13.RecordSource = "select * from CHCT where shebeiliexing='store'and zhuangtai2=0"
Adodc13.Refresh
If x < Adodc11.Recordset.RecordCount & y < Adodc12.Recordset.RecordCount & z < Adodc13.Recordset.RecordCount Then
Adodc11.RecordSource = "select * from COCT where shebeiliexing='input'and zhuangtai1=0"
Adodc11.Refresh
Adodc12.RecordSource = "select * from COCT where shebeiliexing='output'and zhuangtai1=0"
Adodc12.Refresh
Adodc13.RecordSource = "select * from COCT where shebeiliexing='store'and zhuangtai1=0"
Adodc13.Refresh
If x < Adodc11.Recordset.RecordCount & y < Adodc12.Recordset.RecordCount & z < Adodc13.Recordset.RecordCount Then
Adodc11.RecordSource = "select * from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='input'and DCT.zhuangtai=0"
Adodc11.Refresh
Adodc12.RecordSource = "select * from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='output'and DCT.zhuangtai=0"
Adodc12.Refresh
Adodc13.RecordSource = "select * from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='store'and DCT.zhuangtai=0"
Adodc13.Refresh
If x < Adodc11.Recordset.RecordCount & y < Adodc12.Recordset.RecordCount & z < Adodc13.Recordset.RecordCount Then
Dim con As New ADODB.Connection
con.Open ("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=独占设备;Data Source=PC-20110915FGKA")
con.Execute "update DCT set zhuangtai=1 where 'dctbihao'=(select top x dctbiaohao from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='input'and zhuangtai=0)"
con.Execute "update DCT set zhuangtai=1 where 'dctbihao'=(select top y dctbiaohao from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='output'and zhuangtai=0)"
con.Execute "update DCT set zhuangtai=1 where 'dctbihao'=(select top z dctbiaohao from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='store' and zhuangtai=0)"
con.Execute "update COCT set zhuangtai1=1 where 'coctbiaohao'=(select top x coctbiaohao from COCT where shebeiliexing='input' and zhuangtai1=0)"
con.Execute "update COCT set zhuangtai1=1 where 'coctbiaohao'=(select top y coctbiaohao from COCT where shebeiliexing='output'and zhuangtai1=0)"
con.Execute "update COCT set zhuangtai1=1 where 'coctbiaohao'=(select top z coctbiaohao from COCT where shebeiliexing='store'and zhuangtai1=0)"
con.Execute "update CHCT set zhuangtai2=1 where 'chctbihao'=(select top x chctbiaohao from CHCT where shebeiliexing='input'and zhuangtai2=0)"
con.Execute "update CHCT set zhuangtai2=1 where 'chctbihao'=(select top y chctbiaohao from CHCT where shebeiliexing='output'and zhuangtai2=0)"
con.Execute "update CHCT set zhuangtai2=1 where 'chctbihao'=(select top z chctbiaohao from CHCT where shebeiliexing='store'and zhuangtai2=0)"
con.Execute "update PROCESS set jczhuangtai=1 where jczhuangtai=0"
End If
End If
End If
End If
End If
End If
End Sub
[解决办法]
con.Execute "update DCT set zhuangtai=1 where 'dctbihao'=(select top" & x & " dctbiaohao from SDT,DCT where SDT.dctbiaohao=DCT.dctbiaohao and SDT.shebeiliexing='input'and zhuangtai=0)"
[解决办法]
If x < Adodc11.Recordset.RecordCount and y < Adodc12.Recordset.RecordCount and z < Adodc13.Recordset.RecordCount Then
[解决办法]
设置断点进行调试……