5 participantes
[Resolvido]Exibir nome do rótulo do campo associado.
Sidney- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 431
Registrado : 08/10/2012
- Mensagem nº1
[Resolvido]Exibir nome do rótulo do campo associado.
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
Tentei reproduzir isso no meu Access 2007 e 2010 e não consegui de modo algum encontrar na folha de propriedades uma que se chamasse "Nome do Rótulo". Mas segue abaixo um código que pode te auxiliar. Insira-o no evento "ao carregar" do seu formulário que, nos conformes do formulário da sua imagem, buscará dentre as propriedades da textbox a que retorna o nome do rótulo associado em questão e assim mostrará como usar tal propriedade para exibir seu valor em uma caixa de mensagem.
- Código:
On Error Resume Next
Dim prp As Property
Dim vl As String
For Each prp In Me!txt_Campo1.Properties
vl = prp.Value
If Err Then
Err.Clear
ElseIf vl = "Rótulo2" Then
Call MsgBox("O nome da propriedade que tem o nome do rótulo associado é: " & prp.Name)
Call MsgBox("Para exibi-la em uma mensagem basta usar: " & vbNewLine & vbNewLine & "msgbox me.SeuCampo." & prp.Name)
Exit Sub
End If
Next prp
Call MsgBox("A propriedade com o nome do rótulo associado não encontrada.")
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
Sidney- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 431
Registrado : 08/10/2012
Damaceno, bom dia!!
Então, acho que não me expressei bem, eu tenho um programa que antes de atualizar o fomulario ele buscar os campos que por ventura ficou em branco, obrigando o usuários a digitar, neste programa ele me mostra o nome do campo, atraves de um loop que ele faz, só que em vez dele mostrar o nome do campo, quero que me mostre o nome do rótulo, porque assim fica mais explicito a questão para o usuário, veja o exemplo abaixo de como está a mensagem para o usuário,
'este funçãodo joão paulo foi adapatdo,
e é neste momento que eu quero um dito programa para complementar o código acima, em vez do nome do campo o nome do rotulo, e pelo que eu entedi do seu buscar o rútulo de um campo expecifico se for espeficicado o nome, me corriga se eu estiver enganado, e não deu certo.
att
Sidney
Então, acho que não me expressei bem, eu tenho um programa que antes de atualizar o fomulario ele buscar os campos que por ventura ficou em branco, obrigando o usuários a digitar, neste programa ele me mostra o nome do campo, atraves de um loop que ele faz, só que em vez dele mostrar o nome do campo, quero que me mostre o nome do rótulo, porque assim fica mais explicito a questão para o usuário, veja o exemplo abaixo de como está a mensagem para o usuário,
'este funçãodo joão paulo foi adapatdo,
- Código:
Public Function ValidaPreenchimento(c As Form) As Boolean
'By JPaulo Maximo Access
Dim ctl As control
For Each ctl In c.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acOptionGroup Or ctl.ControlType = acCheckBox Or ctl.ControlType = acComboBox Then
If ctl.Tag = -2 Then
If IsNull(ctl.Value) Or ctl.Value = "" Or IsEmpty(ctl.Value) Then
MsgBox "O Campo '" & ctl.Name & "' não pode ficar em branco", vbCritical, "Campo obrigatório."
ctl.SetFocus
ValidaPreenchimento = True
Exit Function
End If
End If
End If
Next
e é neste momento que eu quero um dito programa para complementar o código acima, em vez do nome do campo o nome do rotulo, e pelo que eu entedi do seu buscar o rútulo de um campo expecifico se for espeficicado o nome, me corriga se eu estiver enganado, e não deu certo.
att
Sidney
Alexandre Neves- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 8498
Registrado : 05/11/2009
Boa tarde
Adaptei. Será isto?
Adaptei. Será isto?
- Código:
Public Function ValidaPreenchimento(c As Form) As Boolean
'By JPaulo Maximo Access
'Adaptado por Alexandre Neves para mostrar o nome do campo do controlo
Dim ctl As control
For Each ctl In c.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acOptionGroup Or ctl.ControlType = acCheckBox Or ctl.ControlType = acComboBox Then
If ctl.Tag = -2 Then
If IsNull(ctl.Value) Or ctl.Value = "" Or IsEmpty(ctl.Value) Then
MsgBox "O Campo '" & ctl.Controlsource & "' não pode ficar em branco", vbCritical, "Campo obrigatório."
ctl.SetFocus
ValidaPreenchimento = True
Exit Function
End If
End If
End If
Next
.................................................................................
Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
Sidney, qual a versão do seu Access?
Lembro de já ter visto uma função pronta para isto feita pelo Dilson. Você também poderia salvar um nome mais amigável na propriedade "Tag/Marca" no textbox e na validação dos campos exibí-la com um ctl.Tag
Lembro de já ter visto uma função pronta para isto feita pelo Dilson. Você também poderia salvar um nome mais amigável na propriedade "Tag/Marca" no textbox e na validação dos campos exibí-la com um ctl.Tag
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
Sidney- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 431
Registrado : 08/10/2012
Prezados Boa Tarde!!
Me desculpem a demora para responder, estive ausente estes dias, Damasceno a vesão é o 365.
att; Sidney
Me desculpem a demora para responder, estive ausente estes dias, Damasceno a vesão é o 365.
att; Sidney
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
Adquiri o office 365 e utilizando o código que informei na mensagem de número 2 descobri que a propriedade que você procura se chama "LabelName". Não sei se ela está disponível para todas as versões anteriores, mas na minha versão do access 2007 do office não funcionou.
Mas continuando no 365 e no código que você utiliza, então bastaria usar --> ctl.properties("LabelName").value
Mas continuando no 365 e no código que você utiliza, então bastaria usar --> ctl.properties("LabelName").value
- Código:
Public Function ValidaPreenchimento(c As Form) As Boolean
'By JPaulo Maximo Access
Dim ctl As control
For Each ctl In c.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acOptionGroup Or ctl.ControlType = acCheckBox Or ctl.ControlType = acComboBox Then
If ctl.Tag = -2 Then
If IsNull(ctl.Value) Or ctl.Value = "" Or IsEmpty(ctl.Value) Then
MsgBox "O Campo '" & ctl.properties("LabelName").value & "' não pode ficar em branco", vbCritical, "Campo obrigatório."
ctl.SetFocus
ValidaPreenchimento = True
Exit Function
End If
End If
End If
Next
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
yourV- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1
Registrado : 06/02/2020
A sugestão é que use a propriedade texto da barra de status de cada controle para informar o rótulo.
Ao passar:
Ao passar:
- Código:
MsgBox "O Campo '" & ctl.StatusBarText & "' não pode ficar em branco", vbCritical, "Campo obrigatório."
tauron- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1416
Registrado : 07/12/2011
tente adptar:
If Len(seucampo & "") = 0 Then
MsgBox "O campo seucampo é obrigatório.", vbCritical, ""
End If
If Len(seucampo & "") = 0 Then
MsgBox "O campo seucampo é obrigatório.", vbCritical, ""
End If
Sidney- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 431
Registrado : 08/10/2012
- Mensagem nº10
Re: [Resolvido]Exibir nome do rótulo do campo associado.
Bom dia!! Pessoal,
Damasceno, o código deu certo, mas tive que renomerar o nome do rótulo com o mesmo nome da legenda, ai ficou perfeto,
obrigadão!
e aos demais que opnaram, muito obrigado tambem.
att;
Sidney
Damasceno, o código deu certo, mas tive que renomerar o nome do rótulo com o mesmo nome da legenda, ai ficou perfeto,
obrigadão!
e aos demais que opnaram, muito obrigado tambem.
att;
Sidney
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº11
Re: [Resolvido]Exibir nome do rótulo do campo associado.
O fórum agradece o retorno. Sucesso.
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº12
Re: [Resolvido]Exibir nome do rótulo do campo associado.
Adaptação, meu nobre
me(ctl.properties("LabelName").value).caption
me(ctl.properties("LabelName").value).caption
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº13
Re: [Resolvido]Exibir nome do rótulo do campo associado.
Complementando aqui, e isso funciona em qualquer versão Access
me!NomeCampo.Controls(0).Caption
Casa muito bem com validação de campos, tendo, inclusive, exemplo no repositório
https://www.maximoaccess.com/t280-valida-campos-nulos
me!NomeCampo.Controls(0).Caption
Casa muito bem com validação de campos, tendo, inclusive, exemplo no repositório
https://www.maximoaccess.com/t280-valida-campos-nulos
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
» [Resolvido]Retornar o nome do rótulo do campo
» [Resolvido]Gravar o Nome do Rótulo em vez do nome do control
» Detectar rótulo associado a control através do índice de tabulação
» [Resolvido]Formatação condicional pra campo não associado.
» [Resolvido]Filtro em Formulário com Campo Nâo Associado a Tabela
» [Resolvido]Gravar o Nome do Rótulo em vez do nome do control
» Detectar rótulo associado a control através do índice de tabulação
» [Resolvido]Formatação condicional pra campo não associado.
» [Resolvido]Filtro em Formulário com Campo Nâo Associado a Tabela