有一个查询:当同意修改时,数据库更新,如果不同意则文本框恢复原来的值.      问题是:如果我设MDIFORM.(全局)变量时.文本框内容会恢复,
             但是如果设局部变量时,文本框内容则是空的.               请高手指点迷经!!!!!万分感谢
Private Sub Command1_Click()
aa = MsgBox("是否完成此次修改操作!", vbOKOnly + vbYesNo, "通知")
  If aa = vbYes Then
      Adodc1.Recordset("IP地址") = Trim(Text1.Text)
      Adodc1.Recordset("用途") = Trim(Text2.Text)
      Adodc1.Recordset("型号") = Trim(Text3.Text)
      Adodc1.Recordset("存放地点") = Trim(Text4.Text)
      Adodc1.Recordset("备注") = Trim(Text5.Text)
      Adodc1.Recordset.Update
      
  Else
  
      Text1.Text = MDIForm1.sss ( ?  文本框里有内容 )
      Text2.Text = a             ( !! 文本框里有内容) 
      
      Command1.SetFocus
      
  End If
  
End SubPrivate Sub Form_Load()
Adodc1.RecordSource = "select * from route where 编号 =val('" & MDIForm1.route_id & "')"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Text1.Text = Trim("" & Adodc1.Recordset("IP地址"))
Text2.Text = Trim("" & Adodc1.Recordset("用途"))
Text3.Text = Trim("" & Adodc1.Recordset("型号"))
Text4.Text = Trim("" & Adodc1.Recordset("存放地点"))
Text5.Text = Trim("" & Adodc1.Recordset("备注"))
MDIForm1.sss = Text1.Text  (全局变量)
a = Text2.Text   (局部变量,在本窗体里设置的)
End IfEnd Sub

解决方案 »

  1.   

    如果a是在Form顶部定义的窗体级变量,那么没有问题。可能"用途"的值本身是空的吧
      

  2.   

    没必要这么做吧,我认为有更好的办法,可以不用设置变量!...
    Else
        '取消修改,然后恢复文本框的内容
        Adodc1.Recordset.CancelUpdate
        Text1.Text = Trim("" & Adodc1.Recordset("IP地址"))
        Text2.Text = Trim("" & Adodc1.Recordset("用途"))
        Text3.Text = Trim("" & Adodc1.Recordset("型号"))
        Text4.Text = Trim("" & Adodc1.Recordset("存放地点"))
        Text5.Text = Trim("" & Adodc1.Recordset("备注"))
        ...    Command1.SetFocus  
    End If
      

  3.   

    如果a实在过程中定义的 应该不行,过程结束后a就要被释放掉
    如果再通用里面定义的窗体级的 就没有问题 直到窗体被Unload才会释放掉
    应该是这样 
    UP
      

  4.   

    同意 yuvotesyg518 说的,直接,正规.
    楼主本来对变量就云山雾罩的,还搞什么变量,越搞越晕.
    能不用变量就不用变量,这是编程准则,也是能够看出你的水平的地方.滥用变量本就是大忌.
     
      

  5.   

    另外,可以连下面这些也不写
        Text1.Text = Trim("" & Adodc1.Recordset("IP地址"))
        Text2.Text = Trim("" & Adodc1.Recordset("用途"))只要把文本框控件和数据库源绑定就行了.再加一个"取消修改"按钮,在里面写一条"Adodc1.Recordset.CancelUpdate"就行了.如果用户修改了内容,并且跳转到其它记录,则修改的内容自动保存.
    如果用户修改了内容又想放弃修改,只要点击"取消修改"就自动恢复原来内容了.代码尽量地少,同时功能一目了然,这才是程序员的目标.