我用VB读取WinCC的过程变量A(二进制)到text16 中 ,只要text6中为1,就向SQL数据库做一条记录。
下面的代码是当条件满足时,用按钮command1添加记录的(这个已经实现)。
Private Sub command1_click()
If Text16.Text = "1" Then
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Text = Text19.Text ‘SQL字段1
Text2.Text = Text5.Text ‘SQL字段2
Text3.Text = Text17.Text ‘SQL字段3
Text20.Text = Date ‘SQL字段4
Text4.Text = Time ‘SQL字段5
Adodc1.Recordset.UpdateBatch
Else
End If
End Sub我的问题是,怎样写,可以让VB根据变量A为1时自动做一条记录。上面的条件语句放到什么样的过程或方法中去?
下面的代码是当条件满足时,用按钮command1添加记录的(这个已经实现)。
Private Sub command1_click()
If Text16.Text = "1" Then
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Text = Text19.Text ‘SQL字段1
Text2.Text = Text5.Text ‘SQL字段2
Text3.Text = Text17.Text ‘SQL字段3
Text20.Text = Date ‘SQL字段4
Text4.Text = Time ‘SQL字段5
Adodc1.Recordset.UpdateBatch
Else
End If
End Sub我的问题是,怎样写,可以让VB根据变量A为1时自动做一条记录。上面的条件语句放到什么样的过程或方法中去?
Timer1.Enabled = 1000
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
If Text16.Text = "1" Then
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Text = Text19.Text 'SQL字段1
Text2.Text = Text5.Text 'SQL字段2
Text3.Text = Text17.Text 'SQL字段3
Text20.Text = Date 'SQL字段4
Text4.Text = Time 'SQL字段5
Adodc1.Recordset.UpdateBatch
Else
End If
Timer1.Enabled = True
End Sub
你看行不?
If Text16.Text = "1" Then
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Text = Text19.Text ‘SQL字段1
Text2.Text = Text5.Text ‘SQL字段2
Text3.Text = Text17.Text ‘SQL字段3
Text20.Text = Date ‘SQL字段4
Text4.Text = Time ‘SQL字段5
Adodc1.Recordset.UpdateBatch
Else
End If
End Sub 当连续为 "1" 时不会重写。
虽然连续为1不会重复。 但在信号的下降沿,还是重复记录了一次。
实际 of123已经帮我解决了这个问题,感谢of123!
也感谢所有帮我的朋友们
我现在的思路是,让过程变量置1的保持时间为5秒因为过程变量动作不频繁,几分钟一次
-----------------------------------------------------------------------------
定时器一样可以完成任务,如下:
Private Sub Form_Load()
Timer1.Enabled = 60000
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
If Text16.Text = "1" Then
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Text = Text19.Text 'SQL字段1
Text2.Text = Text5.Text 'SQL字段2
Text3.Text = Text17.Text 'SQL字段3
Text20.Text = Date 'SQL字段4
Text4.Text = Time 'SQL字段5
Adodc1.Recordset.UpdateBatch
Else
End If
Timer1.Enabled = True
Text16.Text = "0"'加上这句
End Sub