现有两段代码,主要是跟全局变量有关,由于测试条件达不到,没有办法测试,只好问问各位了!
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 SubPrivate 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可能变成空值,会不会出现这样的问题,如果出现了该如何解决,谢谢!

解决方案 »

  1.   

    把 Public UserId As String 放在 module 里面去定义。
      

  2.   

    Dim autoid, UserNumber, MessageContent, UserId As String  Dim tempsql As String
    在这里定义的是过程级别的USERID,每次时间控件触发后都制空了addLog2 datestr, "发送成功", SIM, SM, "1", UserId
    在这里得到的USERID的PUBLIC里定义好的
    应该不会出现你想的问题的。如果出现了,你设置个断点进行调试下。
      

  3.   

    我可不可以把Dim autoid, UserNumber, MessageContent, UserId As String  Dim tempsql As String 这里边定义的userid去掉,只是在模块里定义呢?
      

  4.   

    那么你在模块里
    public UserID as string