现有两段代码,主要是跟全局变量有关,由于测试条件达不到,没有办法测试,只好问问各位了!
Public UserId As String
Private Sub Timer1_Timer()
Dim rs As ADODB.Recordset
Dim autoid, UserNumber, MessageContent, UserId As String Dim tempsql As String
Dim sql As String
On Error GoTo lastcode
If IsLeftPoint Then
Set rs = New ADODB.Recordset
If Wavecom1.SendBufCount > 0 And Wavecom1.SendBufCount <= 10 Then
tempsql = "select top 10 AutoID,isnull(UserNumber,0) as UserNumber,isnull(MessageContent,) as MessageContent,userid from T_Out_Modem "
Set rs = ExecSql(tempsql, CONN2)
While Not rs.EOF 数据库
If IsLeftPoint Then
autoid = CStr(rs("autoid"))
UserNumber = rs("UserNumber")
MessageContent = rs("MessageContent")
UserId = rs("userid") modify by zhang 05.8.5
Wavecom1.SendSM UserNumber, MessageContent
CONN2.Execute ("delete T_Out_Modem where autoid=" + autoid + "")
rs.MoveNext
Else
Exit Sub
End If
DoEvents
Wend
rs.Close
Set rs = Nothing
End If
End If
End Sub
Private Sub Wavecom1_SendResult(SM As String, SIM As String, result As CommModule.enumSendResult)
Dim datestr As String
datestr = Format(Now, "yyyy-mm-dd hh:mm:ss")
If result = Success Then
addLog1 datestr, "发送成功", SIM, SM, "1"
addLog2 datestr, "发送成功", SIM, SM, "1", UserId
showListInfo datestr, 1, SIM, SM, UserId
Call ChangePoint
Call IsLeftPoint2
Else
addLog1 datestr, "发送失败", SIM, SM, "4"
showListInfo datestr, 2, SIM, SM, UserId
End If
End Sub
现定义了userid为全局变量,主要是为了下边函数的调用,小弟担心的是在后边函数调用的时候userid可能变成空值,会不会出现这样的问题,如果出现了该如何解决,谢谢!
把 Public UserId As String 放在 module 里面去定义。
Dim autoid, UserNumber, MessageContent, UserId As String Dim tempsql As String
在这里定义的是过程级别的USERID,每次时间控件触发后都制空了
addLog2 datestr, "发送成功", SIM, SM, "1", UserId
在这里得到的USERID的PUBLIC里定义好的
应该不会出现你想的问题的。如果出现了,你设置个断点进行调试下。