Jump to content

[Resolvido] Procedimentos e Funções


Recommended Posts

a linguagem que eu tou a programar nao é bem VB.. é VBA...

eu keria excutar uma função dentro de um procedimento...

Código:

Função:

Public Function ConjuntoAcessorios()
Dim conjunto As String
conjunto = "Acessórios"
ConjuntoAcessorios = conjunto
End Function

e o procedimento:

Public Sub cmd_componentes_Click()
Dim nome As String
nome = "Componentes"
Form_frm_artigos.lbl_conjunto.Caption = "Componentes"
DoCmd.OpenForm ("frm_artigos")
End Sub

a ideia era ao clicar no botão.... o caption desse comando ser aribuido a variavel "conjunto" na função... nao sei se me fiz entender...  😞

Link to comment
Share on other sites

Para começar à que distinguir o que é uma função e um procedimento. Uma função tem retomar algo e um procedimento não. Ou seja numa função podes passa alguns parâmetros e retomar algo. Exemplo:

Private Function CalculaResultado(x As Integer, y As Integer) As Integer
       CalculaResultado = x * y
End Function

Nos procedimentos pode-se também passar parâmetros mas não retorna nada: Exemplo:

Private Sub MostraResultado(ValorCalculado As Integer)
        MsgBox(ValorCalculado)
End Sub

Essa é a diferença e embora as coisas funcionem, convém utiliza-las da forma correcta.

Mas agora a tua questão. Não percebi muito bem mas será isto:

Public Function ConjuntoAcessorios(strNome As String)
Dim conjunto As String
conjunto = "Acessórios " & strNome
ConjuntoAcessorios = conjunto
End Function

Public Sub cmd_componentes_Click()
Dim nome As String
            nome = "Componentes"
Form_frm_artigos.lbl_conjunto.Caption = "Componentes"
Call ConjuntoAcessorios(nome)
DoCmd.OpenForm ("frm_artigos")
End Sub

Se não for tenta explicar melhor.

Link to comment
Share on other sites

Bem a ideia é passar informação entre funções/procedimentos. Por exemplo:

Function Teste(str As String) As String
     Return str.ToUpper()
End Function

Sub Executa()
  MessageBox.Show(Test("O meu teste"))
End Sub

>> a ideia era ao clicar no botão.... o caption desse comando ser aribuido a variavel "conjunto" na função... nao sei se me fiz entender... 

Pelo que percebi queres juntar a uma variável algo. Então tens de passar como argumento e depois juntar a uma variável.

Se calhar tenta explicar melhor ? E já agora qual é o Access que estás a utilizar ?

Link to comment
Share on other sites

Bem... como estas a chamar a função não sei, mas sei que quando defines a função tens de lhe dar um tipo. Tu tens

public function nomeconjunto(strnome as string)

Falta-te o tipo da função, e para isso é

public function nomeconjunto(strnome as string) as string

Cumps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.