比如:
Public Function db() As String
db = "123"
End Function
在一个按钮代码如何修改db的值(比如改成db="111")
我是直接赋值的:db ="111"可系统提示:赋值号左边的函数函数调用必须返回变体或对象.
有代码吗?

解决方案 »

  1.   

    因为你的db是一个函数的原因的呀。改为
    public db as string 
    Public Function dbchange() As String
    db = "123"
    End Function
      

  2.   

    好像没有意义的问题。
    改一下
    Public Function db(sss as String) As String
    if len(sss)=0 then
    db = "123"
    else
    db = sss
    end if
    End Function
      

  3.   

    CMD_CLICK事件来改变DB的值,怎么写?
      

  4.   

    Private Sub Command1_Click()
    MsgBox db("2222")
    MsgBox db("")
    End Sub
      

  5.   

    你的例子db应该是返回值,所以你直接府值是错误的。
    如果直接修改db 的值, 不进行运算的话 public db as string好了 (db在VB里面不是函数)
      

  6.   

    同意ikey(逃兵)   DB是函数的返回值,不能直接赋值,可以用公共变量或在函数里转换一下就好了
      

  7.   

    我已经把Public Function db(sss as String) As String
    if len(sss)=0 then
    db = "123"
    else
    db = sss
    end if
    End Function
    放入模块中,可是窗体一关闭,变量就没有了,整个程序还没有关闭,模块变量不应该消失阿!为什么?
      

  8.   

    Function 是自定义的函数,在Public Function db(sss as String) As String
    if len(sss)=0 then
    db = "123"
    else
    db = sss
    end if
    End Function
    并不存在所谓的模块变量,如果你想使用变量不妨如下定义:
    public m_str as stringPublic Function db(sss as String) As String
    if len(sss)=0 then
    m_str  = "123"
    else
    m_str  = sss
    end if
    End Function调用 db "2222" 相当于给 m_str  复值,只要程序没有结束,你都可以利用 m_str 
      

  9.   

    不过上面在
    public m_str as stringPublic Function db(sss as String) As String
    '代码
    End Function如果只是简单的复值的话,将是毫无意义的。
    直接m_str ="1920730127312"就可以了。
    不过我想你是想处理更多,比如:Public Function db(sss as String) As String
    if sss="you" then
       m_str ="我是笨瓜"
    elseif sss="me" then
       m_str="你是笨瓜"
    else
       m_str="都是笨瓜"
    end if
       db=m_strEnd Function