• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kyryus

[Resolvido] Procedimentos e Funções

14 mensagens neste tópico

tipo...

 Private Sub [kalker koisa]
         Private Sub [kalker koisa]
            (....)
         End sub
End sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não assim não dá!

O que podes é chamar um procedimento ou função e passar paramêtros, retornando-os ou não. Agora um dentro do outro não permite.

Mas tens algum caso práctico onde aplicar. Talvés existam outras alternativas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vou tentar a tua maneira e depois digo alguma coisa... bigado  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[pre]Public Function ConjuntoAcessorios(strNome As String)

  Dim conjunto As String

  conjunto = "Acessórios " & strNome

  ConjuntoAcessorios = conjunto

End Function[/pre]

oia o que significa & strNome?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu experimentei da maneira que disses-te e deu este erro:

semttulooo0.th.jpg

nem sei o q significa  :P

ajuda-me aí

ah! Estou a utilizar o Access 2007...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que parece estás a chamar a função assim:

=Nomeconjunto()

No entanto tens de passar um argumento como string

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora