bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Referenciar objetos Forms e Reports e às suas propriedades

Referenciar objetos Forms e Reports e às suas propriedades

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Veremos como o Access usa a sintaxe especializada do VBA para se referir aos controles, propriedades e métodos de formulários e relatórios.  Até os programadores mais experientes  costumam tropeçar em algumas destas formas de escrita.   Portanto fique bem atento aos detalhes que serão aqui apresentados!

Coleções Forms e Reports

O Access usa as coleções Forms e Reports para identificar os objetos que desejamos nos referir. 

Exemplos para se referir a um objeto formulário e a um objeto relatório:

forms!NomeDoFormulário

reports!NomeDoRelatório

Observe que é usado o operador bang (!) para separar o nome da coleção (forms/reports) do nome de um objeto da coleção (NomeDoFormulário/NomeDoRelatório).

Cuidado com os nomes de formulários e relatórios que incluem espaços, pois nestes casos é necessário o uso de  colchetes ([...]).

forms![Nome do Formulário]

reports![Nome do Relatório]

Procure utilizar nomes sem espaços. Exemplos de nomes para os objetos:

frmContaCorrente, rltHorasExtras, tblItensPedidos, qryResumoTrimestre, ...

Uma outra forma de escrita que nos permite um grau de flexibilidade na definição dos nomes dos objetos, é o de fazer uso de parênteses.

forms("Nome do formulário")

reports("Nome do Relatório")

A flexibilidade vem do fato de podermos utilizar uma variável ou um argumento de uma função para indicar o nome do objeto.  

forms(NomeDeUmaVariável)

reports(NomeDeUmArgumentoDeUmaFunção)

Veja um exemplo prático, no uso de parênteses, na função fncImprimir() deste artigo.

Referenciando os controles

Podemos usar o ponto(.) ou o bang(!) para fazer referência aos controles.  Eu prefiro o bang(!), deixando o ponto para referenciar propriedades e métodos.

forms!NomeDoFormulário!NomeDoControle

reports!NomeDoRelatório!NomeDoControle

Vale ressaltar que para o caso dos nomes que incluem espaços, não podemos esquecer de usar os colchetes([...]).

forms![Nome do Formulário]![Nome do Controle]

reports![Nome do Relatório]![Nome do Controle]

Outra forma de referenciar os controles é usar os parênteses, que permitem também fazer uso de variável ou argumento de uma função.

forms("Nome do formulário")!(NomeDeUmaVariável ou NomeDeUmArgumento)

Reports("Nome do relatório")!(NomeDeUmaVariável ou NomeDeUmArgumento)

Veja neste artigo sobre bingo, o uso de variável para indicar o nome do controle.

Uso do Me

Quando estivermos programando no módulo VBA do formulário ou do relatório, podemos reduzir a sintaxe com o auto-identificador Me

No módulo VBA do formulário Me é o mesmo que forms!NomeDoFormulário 

No módulo VBA do relatório Me é o mesmo que reports!NomeDoRelatório

 Veja como fica ao referenciarmos um controle, usando o Me:

me!NomeDoControle
 
Para nome de controle contendo espaços:

me![nome do controle]

usando os parênteses. 

me!("Nome do controle")
 
Podemos omitir o bang(!) ao usarmos o parênteses
 
me("Nome do controle")

Referenciando propriedades e métodos

Usamos o ponto(.) para referenciarmos propriedades ou métodos de um controle ou de um objeto(forms/reports). 

Observe como fica a sintaxe, alterando a propriedade visible de um controle:

forms!NomeDoFormulário!NomeDoControle.visible = false

reports!NomeDoRelatório!NomeDoControle.visible = false

Estando no módulo VBA de um formulário ou de um relatório, use o ME

me!NomeDoControle.visible = false

me!NomeDoControle.visible = false

Usando o método requery, do formulário.

me.requery

Referenciando um subformulário (a mesma regra se aplica para subrelatório)

A chave para entender esta sintaxe é observar que o subformulário está encapsulado ao CONTROLE SUBFORMULÁRIO (caixa que recebe o subformulário), do formulário principal. 

Usando Access - Controle Subformulário

 

O CONTROLE SUBFORMULÁRIO possui a propriedade FORM que nos permite ter acesso aos controles, propriedades e métodos do subformulário.

Forms!nomeDoFormulárioPrincipal!NomeDoControleSubformulário.FORM!NomeDoControleSub

Na referência ao controle, podemos omitir da sintaxe, a propriedade FORM, ficando com uma escrita mais enxuta. Veja:

Forms!nomeDoFormulárioPrincipal!NomeDoControleSubformulário!NomeDoControleSub

Quando formos referenciar uma propriedade ou método do subformulário, deveremos manter a propriedade  FORM na sintaxe.

Forms!nomeDoFormulárioPrincipal!NomeDoControleSubformulário.FORM.Recalc

Muita atenção para não cair numa pegadinha!  Observe que indicamos na sintaxe o nome do CONTROLE SUBFORMULÁRIO (parte em vermelho) e não o nome do subformulário. 

Veja na imagem abaixo, a lista de propriedades de um CONTROLE SUBFORMULÁRIO.  Observe as propriedades Nome e Objeto de Origem.   A propriedade Objeto de origem aponta para o subformulário (sfrmItensPedidos) que será encapsulado.  Porém, é a propriedade Nome que é usada na sintaxe, que neste exemplo, foi configurado com o nome  Amizade.

Usando Access - Propriedades Controle Subformulário

 

Conclusão: neste exemplo, a sintaxe para chegar a um controle do subformulário sfrmItensPedidos é:

Forms!NomeDoFormulárioPrincipal!AMIZADE!NomeDoControleSub

Na prática, procuraremos manter o nome do CONTROLE SUBFORMULÁRIO igual ao nome do subformulário.

Se estivermos no módulo VBA do formulário principal, poderemos reduzir a escrita para:

me!AMIZADE!NomeDoControleSub

Referenciando um controle do formulário principal, a partir de um subformulário (a mesma regra se aplica aos relatórios)

Se estivermos no módulo VBA do subformulário, bastará usarmos a propriedade PARENT para termos acesso aos controles, propriedades e métodos do formulário principal.  Exemplo:

Parent!NomeDoControle
 
Se o controle possuir espaços
 
parent![nome do controle]
 
Ou usando o parênteses
 
parent!("nome do controle")

Podemos também acessar propriedades e métodos dos controles, do formulário principal.  Exemplo: usando a propriedade visible de um controle.

parent!NomeDoControle.visible = false

Usando a sintaxe em consultas, macros e em lista de propriedades

Isso mesmo! Podemos utilizar a sintaxe fora do ambiente VBA.  Para estes casos, devemos utilizar a sintaxe completa. 

Veja na imagem abaixo, a sintaxe sendo utilizada na linha de critérios da consulta:

Usando Access - sintaxe forms na consulta

 

O valor do campo Material do formulário é utilizado na consulta para realizar a filtragem.   Só funciona com o formulário aberto.

Na imagem abaixo, observamos o campo de um subformulário recebendo o valor de um campo do formulário principal.  Sintaxe utilizada diretamente pela lista de propriedades do campo.

Usando Access - sintaxe forms na lista de propriedades

 

Podemos também utilizar o parent na lista de propriedades e assim obtermos uma escrita mais reduzida.

Fonte do Controle |=parent!DataEntrega

 

Quadros resumo

Segue, abaixo, uma lista resumo que retrata as formas de sintaxe possíveis. 

Quadro 1

  Se está no VBA do formulário principal
Apontando para o RecordSource do
Formulário PrincipalMe.RecordSource
Subformulário 1 Me!NomeControleSub1.form.RecordSource
Subformulário 2

Me!NomeControleSub1!NomeControleSub2.Form.RecordSource

Apontando para um Controle do
Formulário Principal Me!NomeControle
Subformulário 1 Me!NomeControleSub!NomeControle
Subformulário 2

Me!NomeControleSub1!NomeControleSub2!NomeControle

SourceObject de um controle sub
Formulário PrincipalN/A
Subformulário 1 Me!NomeControleSub1.SourceObject
Subformulário 2 Me!NomeControleSub1!NomeControleSub2.SourceObject

 

Quadro 2

  Se está no VBA do SubFormulário 1
Apontando para o RecordSource do
Formulário Principal Parent.RecordSource
SubFormulário 1 Me.RecordSource
SubFormulário 2 Me!NomeControleSub2.Form.RecordSource
Apontando para um Controle do
Formulário Principal Parent!NomeControle
SubFormulário 1 Me!NomeControle
SubFormulário 2 Me!NomeControleSub2!NomeControle
SourceObject de um controle sub
Formulário PrincipalN/A
SubFormulário 1N/A
SubFormulário 2 Me!NomeControleSub2.SourceObject

 

Quadro 3

  Se está no VBA do subformulário 2
Apontando para o RecordSource do
Formulário Principal Parent.Parent.RecordSource
SubFormulário 1 Parent.RecordSource
SubFormulário 2 Me.RecordSource
Apontando para um Controle do
Formulário Principal Parent.Parent!NomeControle
Subformulário 1 Parent!NomeControle
SubFormulário 2 Me!NomeControle
SourceObject de um controle sub
Formulário PrincipalN/A
SubFormulário 1N/A
SubFormulário 2N/A

 

Quadro 4

  Por fora do Formulário Principal
Apontando para o RecordSource do
Formulário Principal Forms!FormPrincipal.RecordSource
SubFormulário 1 Forms!FormPrincipal!ControleSub1.Form.RecordSource
SubFormulário 2

Forms!FormPrincipalControleSub1!ControleSub2.Form.RecordSource

Apontando para um Controle do
Formulário Principal Forms!FormPrincipal!NomeControle
SubFormulário 1 Forms!FormPrincipal!ControleSub1!NomeControle
SubFormulário 2

Forms!FormPrincipal!ControleSub1!ControleSub2.Form!NomeControle

SourceObject de um controle sub
Formulário PrincipalN/A
SubFormulário 1 Forms!FormPrincipal!ControleSub1.SourceObject
SubFormulário 2

Forms!FormPrincipal!ControleSub1!ControleSub2.SourceObject

 

Desafio

A título de treinamento, estou lhe desafiando a configurar os campos coloridos, conforme imagem abaixo.

Usando Access - Propriedades Controle Subformulário

 

Segue o arquivo exemplo.  Configure os campos dos formulários para que sejam exibidos os valores, conforme figura acima.

Sucesso!


 

 


49 comentários

Aldir   26/11/2023 05:01:39

Bom dia! muito obrigado.
Preciso pegar para o Relatório RelFrota2, o campo Txt_Ano ou o Combox2 do formulário Menu.
A Query usada no Relatório.
SELECT Frota.chassis, Frota.carroceria, Frota.modelocarroceria, Frota.ano, Frota.qtd, Frota.tipoonibus
FROM Frota
GROUP BY Frota.chassis, Frota.carroceria, Frota.modelocarroceria, Frota.ano, Frota.qtd, Frota.tipoonibus
ORDER BY Frota.ano DESC;
Como faço? Tem como me ajudar?
Obrigado!!!

jenaldo   26/08/2023 05:13:21

Avelino. FUNCIONOU! testei como vc passou e foi sucesso. grato mais uma vez.

jenaldo   26/08/2023 04:59:25

Avelino, já agradeço o pronto atendimento. Segue explicações:

estou no form principal. tenho um controle de guias com 5 paginas. cada página com um subformulario. preciso mudar o recordsource de cada subformulario com base num campo do form principal.

tentei várias combinações e dá erro.

Avelino Sampaio   26/08/2023 03:43:00

Jenaldo,

o foco está aonde ? Por exemplo, testei aqui em um botão no formulário principal:

Me.sfrmTeste.Form.NomeDocampo

Observe que nem precisou indicar o nome da guia, em que se encontra o subformulário.

Sucesso!

jenaldo   25/08/2023 15:12:18

estou tentando atualizar um subformulário dentro de uma guia específica dentro de um formulario e não estou conseguindo achar a forma certa.

Wesley   21/12/2022 20:16:17

Pessoal, tenho um formulário principal e três subformulários aninhados dentro dele. Os subformulários estão aninhados em cascata um dentro do outro e no modo folha de dados. Neste caso, é possível referenciar?

Alexandre   15/08/2022 17:27:37

Sr. Avelino

Help.

Não estou conseguindo criar um macro para ir para o registro atual.

-Tenho uma formuláriopai a onde eu faço o cadastro e nele coloquei um sub_formulário a onde mostra todos os Itens cadastrados.
-Neste sub-formulário mostra todos itens cadastrados, coloquei o código como hiperlink e estou tentando criar uma macro para quando clicar no código me mostra-se no formuláriopai este item selecionado.

Exemplo:

Ação - IrParaRegistro

Argumento - Formulário
- Nome do Objeto
- Registro (opção irpara )
Aqui que eu não consegui definir o deslocamento, pois eu preciso que vá para o mesmo registro no Formulário.
ou
Tem uma linha de código VBA para está rotina?

Alguém pode me ajudar?

Obrigado.

IDENILTON   06/05/2022 16:29:30

Ola pessoal!
Procurei bastante no forum e encontrei poucos casos parecidos, mas não exatamente como eu que preciso,

Seguinte:
Tenho um formulário chamado FormAcertoForn, baseado na tabela Tbl_AcertoFornecedor contendo os campo CodAcerto, Fornecedor, Destino e Obs. E 2 subformulários que ambos têm o campos CodAcertoForn.
Um subformulário chamado FormAcertoFornParc baseado na tabela Tbl_ComprasParc, vinculado com o fornecedor do formulário principal e nesse subformulário só aparece as parcelas em aberto referente ao fornecedor selecionado no form principal e soma somente as parcelas marcadas pelo campo MARCAR(tipo sim/não).
E outro subformulário chamado FormAcertoFornCheq baseado na tabela Tbl_Cheques e que não está vinculado ao formulário principal.

No formulário FormAcertoForn tenho um filtro que pesquisa registros do subformulário FormAcertoFornCheq pelo campo DtVencimento e totaliza apenas os registros marcados pelo campo MARCAR(tipo sim/não)

O que eu preciso é o seguinte: Quando clicar no botão GRAVAR, o valor do campo CodAcerto do form principal seja inserido em todos os registros marcados no campo MARCAR(tipo sim/não) no campo CodAcertoForn que existe nos dois subformulários.
Resumindo, preciso que o CodAcerto atual do form principal seja inserido no campo CodAcertoForn dos dois subformulários, mas somente nos registros que estão com o campos MARCAR ativado.

Desde já agradeço muito a todos pela atenção.

Francisco Regio   07/02/2022 20:32:19

Olá estou com um problema, estou desenvolvendo um sistema de impressão de apostilas em pdf, preciso imprimir diversos arquivos direto nas impressoras, porém, preciso configurar a orientação da folha (retrato ou paisagem) por cada arquivo enviado, essa informação está armazenada, mas não sei como alterar os parâmetros da impressora e direcionar cada arquivo para uma impressora em questão pois conforme o arquivo será impresso em duas HP e se for no formato paisagem será impresso na Brother. Já utilizei o Application.printer e seus metodos mas não funcionaram, estou enviando pelo comando Shellexecute com as devidas declarações no começo do módulo. Se puderem me ajudar ?.

Claudio Almeida   20/01/2022 18:56:22

Quero aqui deixar meu profundo agradecimento, pois essa aula me ajudou muito. O tempo passa e a qualidade dos ensinamentos continua a mesma, perfeita! Deus abençoe e lhe dê a cada dia mais sabedoria!!

Jonhnny   23/12/2021 13:27:29

Sr. Avelino

Iniciei um projeto de cadastro de folhas com informações que servem como treinamento para aqueles que a lêem. Cada uma dessas folhas possuem sua própria numeração para que possam ser diferenciadas.
Nesse projeto, qualquer pessoa pode usá-lo, e abrir qualquer uma dessas folhas, mas, após visualiza-las devem cadastrar-se como se tivessem sido treinados.
Até ai eu consegui manipular bem o access. Mas, agora vem a minha dúvida. No momento em que essa pessoa se cadastra eu preciso que ao lado do item que ele visualizou conste a quantidade de pessoas que ja foram treinadas, e que quando ele se cadastrar, essa numeração some +1.
Creio que isso deva ser feito através do VBA (eu acho), teria como me ajudar?
Se não tiver entendido direito o que eu quis dizer, me comunique que serei mais esclarecedor.

Adilson   20/12/2021 15:27:19

Prezado Avelino

Sou iniciante no access VBA, porém, estou fazendo um banco de dados para gerenciar a minha conta corrente, eu fiz a estrutura dele conforme a minha organização,porém, eu gostaria que no formulário de cadastro aparece apenas os créditos e débitos referente ao mês atual,

já tenho neste formulário um subformulário que me mostra os gastos diários,

desde já agradeço a sua presteza

Amilton   08/12/2021 09:33:50

bom dia Avelino
como faço para executar uma função que esta em um outro form
exemplo : tenho um form de 01-vendas e form 02-finalizar
ao vender abro o 01- vendas e para finalizar abro o 02-finalizar
gostaria que ao fechar o 02-finalizar execute a impressão do cupom no que01-vendas
e uso a tecla de função f6 para executar no 01-vendas
Att
Amilton

Fábio Santana   14/11/2021 20:10:16

Mestre Avelino,

Estou com uma dúvida. Tenho um form principal e dois subforms aninhados e não vinculados entre si (sub1 e sub 2). Como referencio dois campos dos dois subforms? A minha proposta é quando o campo digitado do sub2 for igual ao do sub1, este mudará de cor e aparecerá um alerta. Aguardo suas orientações.
Abraço.

Flecha   12/11/2021 13:36:38

Boa Avelino,
Consegui resolver o desafio, mas confesso que apanhei bastante!

Valeu!

Avelino Sampaio   30/10/2021 08:17:45

Marcelo,

abra o VBA > no menu Ferramentas > Referências > marque "Microsoft Office 12.0 Object Library"

Se estiver usando o Access 2010, use o "Microsoft Office 14.0 Object Library"

Sucesso!

Marcelo dos Santos    29/10/2021 15:03:07

Boa tarde
Avelino
Mais uma vez peço socorro Bom Mestre

estou como esse código abaixo
da erro de excução
tipo de variavel definido pelo usuario não foi defindo na linha abaixo
Dim r As FileDialog
Set r = Application.FileDialog(msoFileDialogFilePicker)
r.InitialFileName = txtRelatorio
DoCmd.OutputTo acReport, rtl, acFormatPDF, r.SelectedItems(1), 0, , , acExportQualityScreen
MsgBox "Arquivo gerado com sucesso!", vbExclamation + vbOKOnly, "Gerar PDF"
Set r = Nothing

Atenciosamente

Avelino Sampaio   28/10/2021 07:03:15

Marcelo,

tente assim:

DoCmd.OpenReport "RelNiverTexto", acViewPreview,, "Day(NASC)>=" & day(Forms!FrmRelNiver!Datainicio)

Sucesso!

Marcelo dos Santos   27/10/2021 18:52:36

Boa tarde

Avelino

Estou com seguinte duvida
ao abrir o Relario estou querendo fazer o filtro abaixo quando NASC é campo da tabela
quando abre fica pedindo pra informar valor do campo nasc

DoCmd.OpenReport "RelNiverTexto", acViewPreview, "", "[Day(NASC)]>=[Forms]![FrmRelNiver]![Day(Datainicio)]

Antecipo agradecimentos

Marcelo dos Santos    26/10/2021 19:17:54

Boa tarde
Valeu ai pela dica Avelino
era esse comando mesmo q eu estava precisando

Abraços

Obrigado

Avelino Sampaio   22/10/2021 17:12:00

Marcos Elder,

Pode utilizar o ponto sem problema algum. Assim vc continua se valendo do IntelliSense.

Usar o "!" para referenciar os controles e "." para referenciar as propreidades e métodos, no meu entender, fica mais fácil para o novato compreender a montagem da sintaxe.

Sucesso!

Avelino Sampaio   22/10/2021 16:57:10

Marcelo,

não entendi muito bem o que vc deseja. Não ficou claro qual o objetivo.

Se o relatório aberto for ó unico, pode usar assim:

reports(0).Name

Se não for isso, forneça mais detalhes do que deseja fazer.

Sucesso!

Marcelo dos Santos   22/10/2021 16:42:14

Boa Tarde Avelino

estou com uma duvida como faço pra chamar o nome do Relatorio atual

o formulario é Name e pra o relatório qual o comando?

Antecipadamente agradeço pela atenção

Marcos Elder Corrêa   20/10/2021 18:05:23

Ficou excelente e clareou o mal ( "." ou "!") que me assombrava na hora de referenciá-los. Como você prefere o "!" e você é o mestre, então ajustei todos meus trabalhos dessa forma também. Quando der exponha porque prefere o "!". Pena que até certo ponto da digitação perde-se o IntelliSense.
Parabéns mais uma vez!

Avelino Sampaio   17/10/2021 08:42:15

Pessoal,

fico muito feliz que a missão deste site esteja sendo cumprida.

Grato pela participação de vocês.

Sucesso!


José Fábio da Silva   16/10/2021 22:05:06

Meus Parabéns Avelino, sem dúvida é um material muito rico em e de fácil didática.
Muito obrigado por compartilhar conosco dos seus conhecimentos!


Elizeu Farias   15/10/2021 10:47:55

Parabéns Avelino por acrescer mais esta dica á nosso conhecimento.

Christian Voillot Cruz   15/10/2021 09:33:50

Desculpe-me a minha ignorância Avelino, mas a referencia a subformulário foi esclarecedora. Já tinha até desistido de referenciar subformulário via VBA, só usava a macro. Tá explicado!

marcelo dos Santos    13/10/2021 12:22:53

Grande Avelino
Boa Tarde

Estou com a seguinte duvida tenho um Formulario pradrão no meu projeto pra impressão
onde tem 03 objetos Imprir ( Imprimi direto na impressora) Gerar PDF (Gera o Arquivo em PDF) e Enviar E-Mail (Gera o Arquivo e abre o OultLook )

Duvida Como Faço para Chamar o Report Atual para gerar o Arquivo pois esse mesmo formulario vai ser usado em todo os Relatorio do Projeto.

Alcir Ermel   12/10/2021 15:35:19

Grande Avelino.
Muito obrigado por mais esta iniciativa. Sempre aprimorando e transmitindo seus conhecimentos.
Este tutorial sanou algumas duvidas que tinha a respeito do VBA. Sempre quis saber significados de alguns termos utilizados e como aplica-los corretamente.

Forte abraço

Ednei Rodrigues de Oliveira   12/10/2021 12:17:34

Parabéns Avelino!

Obrigado por mais uma vez compartilhar de seus conhecimentos com aqueles que estão iniciando nessa jornada como eu! Sempre apanhei muito com os subformulários e você conseguiu organizar as sintaxes em minha cabeça!

Obrigado!

Luiz Carlos   12/10/2021 08:19:52

Sempre tenho acompanhado as publicações deste Site! sou iniciante, as matérias aqui postadas tem sido fundamentais para meu desenvolvimento, sempre utilizei bem a sintaxe de referência a objetos, entretanto este artigo me mostrou meios mais eficazes e práticos que eu ainda não conhecia.

Parabéns Avelino.

Eduardo Sousa   11/10/2021 19:37:21

Mais um belissimo tutorial.
Muito obrigado Avelino por esta grande ajuda.

Leandro Barbosa   11/10/2021 16:49:08

Mais um tutorial com o selo de qualidade "®Avelino Sampaio", parabéns!!!

claudio a guzenski   11/10/2021 16:02:18

boa tarde, muito bom....mesmo...

Avelino, pergunta, tens alguma dica sobre " do access para word", estou fazendo um sistema e gero um relatório e preciso colocar os dados que estarão neste REL no word.
Que possue várias páginas e os campos deste relatório deverá entrar em determinados lugares. Tens algum exemplo ou cobrarias para dar esta ajuda....grato, aguardo...

Welson Zeferino de Oliveira junior   11/10/2021 15:40:28

Não há palavras para expressar de maneira real o quanto é importante este site para as pessoas que desejam adquirir conhecimento dessa ferramenta da Microsoft. Com sua forma de ensinar, apreendemos de maneira simples e correta a utilizar da melhor forma o Access. Parabéns e obrigado!

Welson Junior
http://dicadecursos.com

James Resplandes   11/10/2021 15:16:00

Mais uma vez você nos envolve com seus belíssimos e instrutivos ensinamentos. Muito obrigado Avelino.

Marcelo David   11/10/2021 10:56:15

Muito Avelino, você realmente sabe ensinar! Ótimo tutorial!
Apesar de usar pouco subform (uso mais o ListView), as vezes que uso, ocasionalmente
erro a sintaxe... Com este tuto, vou "decorar" definitivamente a escrita!


Johnny Cardoso   11/10/2021 10:07:34

Tenho bastante conhecimento de sintaxes entre subformulários e subrelatórios. Igualmente o auto-identificador Me, porém nunca fiz uso deste em sintaxes entre subformulários e subrelatórios. O artigo acendeu uma luz pra exterminar códigos extensos.
Abração

Gilberto Mendes   11/10/2021 09:53:02

Parabéns por mais um excelente artigo! Os iniciantes sempre se confundem com estas regras.

Outro tópico importante e mais recente é o uso do tempvars. Recomendo a todos pesquisar o assunto aqui no site.

Um abraço!

Gilberto Mendes

Werlesson   28/08/2021 14:22:26

Prezado Avelino,

Como obtenho o nome do procedimento ou função que está em execução?
A intenção é gerar uma mensagem, em caso de erro, que já me diga em qual procedimento/função houve a ocorrência. Poderia simplesmente digitar o nome do procedimento/função e concatenar com uma "err.description", mas, isso me obrigaria e digitar o nome em todas as estrutura de interceptação de erro.
Desde já agradeço pela atenção.

Igor Bevilaqua   16/08/2021 05:52:35

Parabéns pelos ensinamentos, esse como tantos outros, é por causa do compartilhamento do saber que o mundo caminha a passos largos e a vida sempre se renova. O que seria do mundo sem os mestres...???

Protta   08/06/2021 12:24:42

Muito boa as dicas, embora básicas mas muito importantes, parabéns.

Priscila   21/05/2021 09:20:03

Avelino, Obrigada pela dica

Fiz extamente isso montei três relatórios
1 Func_Admitidos
2 Func_Demitidos
3 Mov_Funcionários (relatório em branco e coloquei os dois primeiros como sub)

Funciona, só que agora fiquei na duvida, o terceiro relatorio engloba todas as propriedades dos outros dois relatorios,
Ex: Na hora em que coloco as datas para realizar a consulta das movimentações tenho que fazer isso duas vezes (acredito que seja pelo fato de ter dois relatorios em um só)
As configurações mais simples também (Cabeçalho, ropapé, etc) tudo aparece duplicado.

Mas se eu altero essas configurações no Relatório Mov_Funcionários, eles tbm alteram os relatorios principais.

Como posso montar três relatórios distintos sem alterar as suas configurações principais..

Avelino Sampaio   21/05/2021 07:35:43

Priscila,

o correto é vc montar relatórios e pelo que vc está querendo como resultado, sugiro a montagem de três relatórios (um somente de Admitidos, o outro de demitidos e terceiro englobando os dois).

Sucesso na montagem!

Priscila Lima   20/05/2021 08:57:38

Avelino, Bom Dia

Estou com uma duvida, criei um formulário (Func_Admitidos) e depois coloquei dentro deste formulário um sub_formulário (Func_Demitidos) para que pudesse ter os dois relatórios em um só, mas quando tento imprimir sai apenas o formulário principal e não os dois...., gostaria de saber como posso estar relacionando esses formulários para que na hora da impressão saia os dois e se possivel algum tipo de filtro ou comando que eu possa colocar que permita a escolha entre o formulário e o sub_formulário e ambos..

Avelino Sampaio   27/01/2021 05:56:19

Hephraim,

sim, tem. Primeiro tem que passar o procedimento do subformulário para PUBLIC no lugar do PRIVATE. Depois chame o procedimento ou a função desta forma:

Form_NomeSubFormulário.Salvar_Click
Form_NomeSubFormulário.NomeDaFunção

Sucesso!

Hephraim BF   25/01/2021 11:32:34

Muito bom!

Avelino, tem como fazer referência a um procedimento de um subformulário?

Luiz Claudio de Oliveira Matta   16/11/2020 04:57:40

Avelino, consegui entender bem e cumprir o desafio desse tutorial "Referenciar objetos Forms e Reports e às suas propriedades", muito boa sua explicação, no entanto tenho uma solução muito parecida que não funciona a diferença principal é que não são caixas não vinculadas e sim combos vinculadas e esta tudo dentro de um Controle de Guia. Onde posso está errando?


Envie seu comentário: