3 participantes
[Resolvido]Inserindo uma caixa de listagem de seleção múltipla
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Pessoal, eu preciso criar uma tabela com a opção de marcação múltipla, aquela que o usuário vai clicando nas opções. Mas nunca fiz este tipo de associação, preciso fazer o relacionamento entre 2 tabelas e depois utilizar o formulário do access para imprimir o que foi selecionado. Gostaria de saber se existe algum material para que eu possa estudar para fazer isso. Obrigado.
good guy- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1304
Registrado : 05/02/2010
- Mensagem nº2
Inserindo uma caixa de listagem de seleção múltipla
Olá Guilherme,
Você sabe que neste caso vai trabalhar com campos boleanos, certo? Logo em VBA eles assumem o valor TRUE/FALSE ou -1/0 caso sejam selecionados.
Para seleção múltipla trabalha-se com os objetos CheckBoxes. Para selecionar todos os registros com marcação TRUE, crie uma consulta que separe estes tipos de registros ou pelo formulário criar uma tabela só com esta seleção e informar numa caixa de listagem, por exemplo. Pense aí e tente solucionar. Caso não consiga poste o bd.
Você sabe que neste caso vai trabalhar com campos boleanos, certo? Logo em VBA eles assumem o valor TRUE/FALSE ou -1/0 caso sejam selecionados.
Para seleção múltipla trabalha-se com os objetos CheckBoxes. Para selecionar todos os registros com marcação TRUE, crie uma consulta que separe estes tipos de registros ou pelo formulário criar uma tabela só com esta seleção e informar numa caixa de listagem, por exemplo. Pense aí e tente solucionar. Caso não consiga poste o bd.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
A minha dúvida é exatamente isso, eu preciso saber como funciona uma caixa de seleção, ainda estou separando os campos das tabelas, que são poucas. Eu estava querendo também um exemplo de bd_para que eu possa ver como funciona. Contudo ainda não finalizei, vou deixar para você bd que eu estou montando. Está compactado, ainda não terminei, provavelmente você encontrará um erro na tabela tipo_aposentadoria, eu estava tentando colocar esta caixa de seleção, mesmo sabendo que não faço ideia de como são as validações. Obrigado.
- Anexos
- Banco de Dados exemplo.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (39 Kb) Baixado 78 vez(es)
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Olá Guilherme,
Não sei se entendi direito sua dúvida. Vamos lá.
No campo Tipo de Aposentadoria, o usuário escolhe 01 tipo ou pode escolher vários tipos?
Se for 01 tipo, pode colocar esse campo da tabela Processo como caixa de combinação, podendo:
a) ter valores pré-definidos: "Aposentadoria1", "Aposentadoria2", etc.
b) ter, na tabela Tipos de Aposentadoria, os tipos e "puxá-los" através desse campo na tabela Processo.
Se forem vários tipos, pode colocar direto na tabela Processo um tipo em cada campo e classificá-los como tipo SIM/NÃO.
Espero que possa ajudar de alguma maneira.
Não sei se entendi direito sua dúvida. Vamos lá.
No campo Tipo de Aposentadoria, o usuário escolhe 01 tipo ou pode escolher vários tipos?
Se for 01 tipo, pode colocar esse campo da tabela Processo como caixa de combinação, podendo:
a) ter valores pré-definidos: "Aposentadoria1", "Aposentadoria2", etc.
b) ter, na tabela Tipos de Aposentadoria, os tipos e "puxá-los" através desse campo na tabela Processo.
Se forem vários tipos, pode colocar direto na tabela Processo um tipo em cada campo e classificá-los como tipo SIM/NÃO.
Espero que possa ajudar de alguma maneira.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, são vários tipos de aposentadoria, porém estou precisando colocar a caixa de marcação para imprimir uma espécie de capa tipo assim:
Nome do requerente
masp
cargo
unidade de exercício
tipo de aposentadoria
No campo tipo aposentadoria quero que saia no relatório todas, porém uma delas precisa estar marcada com um x.
Por exemplo: aposentadoria integral, aposentadoria por invalidez, aposentadoria proporcional e etc. Vou montar no design de relatório uma capa filtrando os campos e eu quero que apareça todas as aposentadorias, porém uma delas deve estar marcada, depois o pessoal vai imprimir e colar na capa;
Nome do requerente
masp
cargo
unidade de exercício
tipo de aposentadoria
No campo tipo aposentadoria quero que saia no relatório todas, porém uma delas precisa estar marcada com um x.
Por exemplo: aposentadoria integral, aposentadoria por invalidez, aposentadoria proporcional e etc. Vou montar no design de relatório uma capa filtrando os campos e eu quero que apareça todas as aposentadorias, porém uma delas deve estar marcada, depois o pessoal vai imprimir e colar na capa;
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
OK,
Então minha sugestão particular é minha 2ª dica da mensagem anterior, ou seja, que você crie na sua tabela principal, para cada tipo de aposentadoria um campo, do tipo SIM/NÃO.
Exemplo:
ApInt - SIM/NÃO
ApInv - SIM/NÃO
ApProp - SIM/NÃO
Etc...
No seu formulário, vão aparecer todos esses campos (vc deve colocar o texto padrão nso rótulos: Aposentadoria por Invalidez, etc...) da seguinte maneira:
Aposentadoria Integral [] (quadrado p/ marcar)
Aposentadoria por Invalidez [] (quadrado p/ marcar)
Etc...
Veja se serve pra você dessa maneira.
Então minha sugestão particular é minha 2ª dica da mensagem anterior, ou seja, que você crie na sua tabela principal, para cada tipo de aposentadoria um campo, do tipo SIM/NÃO.
Exemplo:
ApInt - SIM/NÃO
ApInv - SIM/NÃO
ApProp - SIM/NÃO
Etc...
No seu formulário, vão aparecer todos esses campos (vc deve colocar o texto padrão nso rótulos: Aposentadoria por Invalidez, etc...) da seguinte maneira:
Aposentadoria Integral [] (quadrado p/ marcar)
Aposentadoria por Invalidez [] (quadrado p/ marcar)
Etc...
Veja se serve pra você dessa maneira.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Vou tentar aqui, caso tenha dificuldade, aviso novamente. Obrigado.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, hoje recomecei o projeto. Tive que aguardar umas pendências por aqui. Gostaria de saber 2 coisas.
1ª. Como faço para imprimir um relatório utilizando um parâmetro? Por exemplo, quero digitar o número do processo e o access Imprime a filtragem dos dados.
2ª. Como faço para que o usuário possa escolher apenas uma opção na caixa de marcação? Tipo, uma aposentadoria poder média ou geral, não posso marcar as 2, gostaria de que exibisse uma mensagem para uma das 5 opções. Obrigado.
1ª. Como faço para imprimir um relatório utilizando um parâmetro? Por exemplo, quero digitar o número do processo e o access Imprime a filtragem dos dados.
2ª. Como faço para que o usuário possa escolher apenas uma opção na caixa de marcação? Tipo, uma aposentadoria poder média ou geral, não posso marcar as 2, gostaria de que exibisse uma mensagem para uma das 5 opções. Obrigado.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Olá Guilherme,
1 - Para imprimir um relatório com critério, você pode criar uma consulta com as campos desejados (com base na tabela desejada) e adicionar no critério do campo que deseja, no caso, por exemplo, Nº do Processo, algo do tipo:
Como '*'+[Informe o Nº do Processo:]+'*'
2 - Não entendi. Serão 02 subtipos para cada tipo de aposentadoria, "Geral" e "Média"? Ou serão só os tipos de aposentadoria?
Bom, mas para impossibilitar de marca 02 tipos, seja o caso que for, pode tentar por código VBA.
Verifique os nomes de suas caixas de seleção. Clique nelas e, nas propriedades, aba Outras, veja o nome em Legenda.
Feito isso, pode clicar nas caixas de seleção e, no evento Após Atualizar, pode acrescentar um código para desmarcar as demais caso aquela esteja marcada, ou uma mansagem se forem marcadas mais de uma.
1 - Para imprimir um relatório com critério, você pode criar uma consulta com as campos desejados (com base na tabela desejada) e adicionar no critério do campo que deseja, no caso, por exemplo, Nº do Processo, algo do tipo:
Como '*'+[Informe o Nº do Processo:]+'*'
2 - Não entendi. Serão 02 subtipos para cada tipo de aposentadoria, "Geral" e "Média"? Ou serão só os tipos de aposentadoria?
Bom, mas para impossibilitar de marca 02 tipos, seja o caso que for, pode tentar por código VBA.
Verifique os nomes de suas caixas de seleção. Clique nelas e, nas propriedades, aba Outras, veja o nome em Legenda.
Feito isso, pode clicar nas caixas de seleção e, no evento Após Atualizar, pode acrescentar um código para desmarcar as demais caso aquela esteja marcada, ou uma mansagem se forem marcadas mais de uma.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, o procedimento VBA eu utilizo em alguns formulários, porém sou inexperiente em VBA, você teria uma exemplo deste procedimento para que eu possa estudá-lo? Quanto ao item 2 só pode ser clicado em 1 tipo de aposentadoria apenas.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Nas suas caixas de selação (checkbox), coloque o código abaixo no evento Após Atualizar de uma delas e repitas nas demais mudando os nomes dos campos:
Na checkbox de Aposentadoria por Invalidez:
If chbApInv.Value = True Then
chbApInt.Value = False
chbApProp = False
Na checkbox de Aposentadoria Integral:
If chbApInt.Value = True Then
chbApInv.Value = False
chbApProp = False
E assim por diante.
Teste e veja se dá certo.
PS: chbApInv, chbApInt, chbApProp seriam os nomes das checkboxs. Altere conforme o nome delas.
Na checkbox de Aposentadoria por Invalidez:
If chbApInv.Value = True Then
chbApInt.Value = False
chbApProp = False
Na checkbox de Aposentadoria Integral:
If chbApInt.Value = True Then
chbApInv.Value = False
chbApProp = False
E assim por diante.
Teste e veja se dá certo.
PS: chbApInv, chbApInt, chbApProp seriam os nomes das checkboxs. Altere conforme o nome delas.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, consegui aqui utilizar este comando, porém preciso que o código aceite que eu clique em 1 apenas e os outros eu não consiga marcar. Olhe abaixo o que inseri:
Private Sub cod_administrativo_AfterUpdate()
If cod_administrativo.Value = True Then
cod_administrativo.Value = False
cod_administrativo = False
End If
End Sub
Este comando bloqueia a marcação preciso que eu possa escolher 1 opção e depois eu não consiga marcar as outras quatro. Estou enviado abaixo todas as caixas de marcação:
cod_geral
cod_media
cod_administrativo
cod_prof_ta
cod_prof_sta
Quando eu marcar em uma, as outas quatro não podem estar habilitadas. Obrigado.
Private Sub cod_administrativo_AfterUpdate()
If cod_administrativo.Value = True Then
cod_administrativo.Value = False
cod_administrativo = False
End If
End Sub
Este comando bloqueia a marcação preciso que eu possa escolher 1 opção e depois eu não consiga marcar as outras quatro. Estou enviado abaixo todas as caixas de marcação:
cod_geral
cod_media
cod_administrativo
cod_prof_ta
cod_prof_sta
Quando eu marcar em uma, as outas quatro não podem estar habilitadas. Obrigado.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Tente assim:
Private Sub cod_administrativo_AfterUpdate()
If Me.cod_administrativo.Value = True Then
Me.cod_geral.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
End If
End Sub
Faça nas outras checkbox, mudando os nomes.
Para restaurar as caixas de seleção, pode criar um botão com a legenda, por exemplo, "Alterar Aposentadoria" e, no evento Ao Clicar do mesmo, colocar:
Me.cod_administrativo.Visible = True
Me.cod_geral.Visible = True
Me.cod_media.Visible = True
Me.cod_prof_ta.Visible = True
Me.cod_prof_sta.Visible = True
Veja se é de seu interesse dessa forma.
Private Sub cod_administrativo_AfterUpdate()
If Me.cod_administrativo.Value = True Then
Me.cod_geral.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
End If
End Sub
Faça nas outras checkbox, mudando os nomes.
Para restaurar as caixas de seleção, pode criar um botão com a legenda, por exemplo, "Alterar Aposentadoria" e, no evento Ao Clicar do mesmo, colocar:
Me.cod_administrativo.Visible = True
Me.cod_geral.Visible = True
Me.cod_media.Visible = True
Me.cod_prof_ta.Visible = True
Me.cod_prof_sta.Visible = True
Veja se é de seu interesse dessa forma.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, realizei todas as alterações que você me ajudou, será que estou fazendo algo errado? Eu fiz assim:
Private Sub cod_administrativo_AfterUpdate()
If Me.cod_administrativo.Value = True Then
Me.cod_geral.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
End If
End Sub
Private Sub cod_geral_AfterUpdate()
If Me.cod_geral.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_geral.Visible = False
End Sub
Private Sub cod_media_AfterUpdate()
If Me.cod_media.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_geral.Visible = False
End If
End Sub
Private Sub cod_prof_s_ta_AfterUpdate()
If Me.cod_prof_ta.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_geral.Visible = False
End If
End Sub
Private Sub cod_prof_ta_AfterUpdate()
If Me.cod_prof_ta.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_prof_ta.Visible = False
End If
End Sub
Em todas as caixas de marcação e retornou o seguinte:
Método ou membros não encontrado.
Estou postando para você o Bd que estou montado para dar uma olhada.
Obrigado pela ajuda que está me dando.
Private Sub cod_administrativo_AfterUpdate()
If Me.cod_administrativo.Value = True Then
Me.cod_geral.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
End If
End Sub
Private Sub cod_geral_AfterUpdate()
If Me.cod_geral.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_geral.Visible = False
End Sub
Private Sub cod_media_AfterUpdate()
If Me.cod_media.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_geral.Visible = False
End If
End Sub
Private Sub cod_prof_s_ta_AfterUpdate()
If Me.cod_prof_ta.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_ta.Visible = False
Me.cod_geral.Visible = False
End If
End Sub
Private Sub cod_prof_ta_AfterUpdate()
If Me.cod_prof_ta.Value = True Then
Me.cod_administrativo.Visible = False
Me.cod_media.Visible = False
Me.cod_prof_sta.Visible = False
Me.cod_prof_ta.Visible = False
End If
End Sub
Em todas as caixas de marcação e retornou o seguinte:
Método ou membros não encontrado.
Estou postando para você o Bd que estou montado para dar uma olhada.
Obrigado pela ajuda que está me dando.
- Anexos
- Bande dados capa de processo de aposetadoria.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (66 Kb) Baixado 44 vez(es)
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Logo de início, verifiquei que o nome da checkbox cod_prof_s_ta estava errado no código, estava cod_prof_sta.
Assim, como outros. Mudei e funcionou. O problema é que, ao abrir novamente o form, os campos voltam a ser mostrados. Vou ver o que consigo aqui e dou um retorno.
Assim, como outros. Mudei e funcionou. O problema é que, ao abrir novamente o form, os campos voltam a ser mostrados. Vou ver o que consigo aqui e dou um retorno.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Veja como ficou só colocando de forma correta os nomes dos campos no código:
- Anexos
- Banco de Dados exemplo_MOD.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (84 Kb) Baixado 63 vez(es)
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Funcionou corretamente, coloquei a opção de alterar aposentadoria e funcionou corretamente:
Private Sub Comando35_Click()
Me.cod_administrativo.Visible = True
Me.cod_media.Visible = True
Me.cod_prof_s_ta.Visible = True
Me.cod_geral.Visible = True
Me.cod_prof_ta.Visible = True
End Sub
Porém quando eu alterar a aposentadoria, tem como desmarcar a opção que tinha marcada errada?
Eu consegui alterar algumas coisas, porém a caixa que marquei primeiro fica selecionada:
Private Sub Comando35_Click()
Me.cod_administrativo.Visible = True
Me.Undo
Me.cod_media.Visible = True
Me.Undo
Me.cod_prof_s_ta.Visible = True
Me.Undo
Me.cod_geral.Visible = True
Me.Undo
Me.cod_prof_ta.Visible = True
Me.Undo
End Sub
Private Sub Comando35_Click()
Me.cod_administrativo.Visible = True
Me.cod_media.Visible = True
Me.cod_prof_s_ta.Visible = True
Me.cod_geral.Visible = True
Me.cod_prof_ta.Visible = True
End Sub
Porém quando eu alterar a aposentadoria, tem como desmarcar a opção que tinha marcada errada?
Eu consegui alterar algumas coisas, porém a caixa que marquei primeiro fica selecionada:
Private Sub Comando35_Click()
Me.cod_administrativo.Visible = True
Me.Undo
Me.cod_media.Visible = True
Me.Undo
Me.cod_prof_s_ta.Visible = True
Me.Undo
Me.cod_geral.Visible = True
Me.Undo
Me.cod_prof_ta.Visible = True
Me.Undo
End Sub
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, sei que a sua ajuda foi de suma importância para o pequeno projeto, mas estou tentando aqui e não consigo fazer com que ao clicar no botão Alterar Tipo que seria tipo de aposentadoria, o access teria que dar um clean em todas as opções e deixar que eu possa escolher novamente, caso tenha escolhido a opção errada, clico novamente no botão alterar tipo e limpa tudo de novo e assim por diante. Porque quando seleciono outra opção ele não desmarca a anterior. Gostaria de saber se tem como me ajudar nesta questão. Obrigado.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Olá Guilherme,
Veja lá agora.
Trocei o Visible pelo Enabled.
Veja lá agora.
Trocei o Visible pelo Enabled.
- Anexos
- Banco de Dados exemplo_MOD_02.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (65 Kb) Baixado 40 vez(es)
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Obrigado mais uma vez, eu estou montando o relatório para uma consulta simples utilizando o critério [Digite o número do SIGED], aí teria que retornar a consulta com os dados filtrados, porém os campos ficam em branco. Eu utilizei o operador LEFT JOIN para retornar tudo o que está a esquerda, porém tudo fica em branco.
Olhe a consulta:
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio INNER JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui com INNER JOIN
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio LEFT JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui utilizando o LEFT JOIN, porém retorna tudo em branco. Não estou compreendendo o porque que não retorna.
Olhe a consulta:
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio INNER JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui com INNER JOIN
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio LEFT JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui utilizando o LEFT JOIN, porém retorna tudo em branco. Não estou compreendendo o porque que não retorna.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Esse campo do SIGED possui máscara de entrada na tabela?
Se sim, tente digitar apenas os números, sem barras, pontos, etc.
Se sim, tente digitar apenas os números, sem barras, pontos, etc.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
good guy- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1304
Registrado : 05/02/2010
- Mensagem nº22
Inserindo uma caixa de listagem de seleção múltipla
Olá Guilherme,
Verifique as tabelas grifadas. O que vc acha? Uma seleção com a tabela tbl_processo buscando na tabela tbl_municipio?
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio INNER JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui com INNER JOIN
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio LEFT JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Verifique as tabelas grifadas. O que vc acha? Uma seleção com a tabela tbl_processo buscando na tabela tbl_municipio?
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio INNER JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
Aqui com INNER JOIN
SELECT tbl_processo.data_vigencia, tbl_processo.siged, tbl_processo.sipro, tbl_processo.nome_solicitante, tbl_processo.masp_solicitante, tbl_processo.cargo, tbl_processo.nº_admissao, tbl_processo.unidade_exercicio, tbl_municipio.nome_municipio, tbl_processo.cod_geral, tbl_processo.cod_media, tbl_processo.cod_administrativo, tbl_processo.cod_prof_ta, tbl_processo.cod_prof_sta
FROM tbl_municipio LEFT JOIN tbl_processo ON tbl_municipio.[cod_municipio] = tbl_processo.[cod_municipio]
WHERE (((tbl_processo.siged)=[Digite o Siged utilizando as barras e dígito verificador]));
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Isso que o nosso amigo GoodGuy falou tb é importante.
Creio que tenha um campo município na sua tbl_processo que puxe os valores da tbl_municipio, certo?
Mas só deveria acrescentar o nome_municipio da tbl_municipio caso fosse fazer algum criterio nesse campo, senão deveria puxá-lo da tbl_processo tb.
Creio que tenha um campo município na sua tbl_processo que puxe os valores da tbl_municipio, certo?
Mas só deveria acrescentar o nome_municipio da tbl_municipio caso fosse fazer algum criterio nesse campo, senão deveria puxá-lo da tbl_processo tb.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Muito obrigado os 2 pela imensa ajuda. Era a máscara de entrada. Não pode conter mesmo pontos do barras. Este fórum é de extrema importância, dividir o conhecimento com quem ainda está cada dia tentando aprender um pouco mais a utilizar o Access. Valeu mesmo.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
E Então, conseguiu resolver o problema?
Se sim, só não esqueça de clicar no [Resolvido], para fechar o tópico.
Sucesso.
Valeu.
Se sim, só não esqueça de clicar no [Resolvido], para fechar o tópico.
Sucesso.
Valeu.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Obrigado.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Olá Guilherme,
Dê uma olhada.
Dê uma olhada.
- Anexos
- Aposentadoria.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (54 Kb) Baixado 63 vez(es)
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Obrigado mais uma vez, agora vou dar andamento aqui, obrigado mesmo. Estou querendo aprender mais sobre VBA e demais funcionalidades no access, você saberia de algum site que contenha acervo referente a Access? Obrigado.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Olá Guilherme,
Que bom que deu certo.
Meu amigo, não poderia haver site melhor do que este aqui sobre o access.
Se usar a busca aqui do fórum, vai encontrar muito material bom.
Quanto a um site específico, não sei, apesar de ter um muito bom, do nosso amigo aqui do fórum, Avelino Sampaio, que é o usandoaccess.com.br.
Mas, qualquer coisa, existe o nosso bom e velho companheiro Google para nos ajudar...
Sucesso.
Valeu.
Que bom que deu certo.
Meu amigo, não poderia haver site melhor do que este aqui sobre o access.
Se usar a busca aqui do fórum, vai encontrar muito material bom.
Quanto a um site específico, não sei, apesar de ter um muito bom, do nosso amigo aqui do fórum, Avelino Sampaio, que é o usandoaccess.com.br.
Mas, qualquer coisa, existe o nosso bom e velho companheiro Google para nos ajudar...
Sucesso.
Valeu.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Olá! Aqui agradeço pela ajuda que está me dando. Eu estou observando referente a caixa de combo, está definida para não editar valores, porém o usuário pode digitar por exemplo: ffsfsfsf em um campo que está definido como MÉDIA, eu congelei o campo porém não consigo selecionar outro, teria como congelar o nome e navegar pelos outros campos sem deixar que usuário digite ffsfsfsf?
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Não entendi.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Por exemplo, naquela caixa de combo onde seleciono a aposentadoria MÉDIA, porém por um erro de digitação a pessoa acrescentou MÉDIADDFDFD, é um erro de digitação, eu sei que na caixa onde tem a funcionalidade Permitir Edições da Lista de Valores está definida como não, eu sei que não se pode alterar a palavra MÉDIA, porém quando selecionar na lista, o usuário pode erroneamente digitar mais alguma coisa. Gostaria de bloquear qualquer tentativa de edição, porém quando defindo Bloqueado como sim, não consigo trocar a opção. Teria como travar qualquer tentativa de edição na caixa de listagem?
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Poderia tentar colocar, no evento Após Atualizar da Combo TipoApos:
If Me.TipoApos <> "MÉDIA" Or "ADMINISTRATIVO" Or AcrescentarTodosOsTipos Then
MsgBox "Tipo de Aposentadoria não permitido. Escolha uma das opções da lista.", vbExclamation
Cancel = True
Me.TipoApos = Null
End If
If Me.TipoApos <> "MÉDIA" Or "ADMINISTRATIVO" Or AcrescentarTodosOsTipos Then
MsgBox "Tipo de Aposentadoria não permitido. Escolha uma das opções da lista.", vbExclamation
Cancel = True
Me.TipoApos = Null
End If
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Caro amigo, consegui aqui, achei no site o comando: KeyAscii = 0. Obrigado
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Ok.
Que bom que resolveu.
Sucesso.
Valeu.
Que bom que resolveu.
Sucesso.
Valeu.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Só uma última pergunta, sem ficar tomando ainda mais o seu tempo, eu tenho notado que quando se cria uma macro, associa ela a um botão de opção, abre uma janela solicitando um parâmetro, tem 2 opções o botão Ok e a opção Cancelar. Quando se cancela, abre uma tela Macro passo a passo com o número do erro. Tem como evitar que abra esta caixa de mensagem? Quado clicar em cancelar simplesmente a caixa de parâmetros fecha. Coloquei uma opção de excluir e utilizo como parâmetro o nº do siged, porém se eu cancelar aparece esta caixa macro passo a passo, eu gostaria de que não aparecesse.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Não entendi direito.
Poderia postar os objetos envolvidos pra darmos uma olhada?
Poderia postar os objetos envolvidos pra darmos uma olhada?
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Hoje esqueci o pen drive em casa com o programa. De noite posto no fórum.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Ok. Aguardamos.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Desculpe pela demora na postagem, tive uns problemas aqui. Não consegui converter este modelo para 2003, contudo funciona no access 2010. A questão é a seguinte, quando você clicar em excluir registro e optar por cancelar aparece 2 caixas de mensagem, uma avisando que o evento não está disponível e a outra com a mensagem de erro da macro 2046. Gostaria de que não aparecessem.
- Anexos
- Banco de Dados - Erro de macro.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (1.2 Mb) Baixado 9 vez(es)
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Bom, meu access é o 2007, então acho que não vai abrir arquivo do 2010.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Uso aqui o 2010 e funcionou.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Mas o access 2007 não reconhece formatos 2010/2013.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Olha se abre aí, tentei fazer uma conversão.
- Anexos
- Banco de Dados exemplo - Erro e macro 2003.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (1.2 Mb) Baixado 30 vez(es)
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Esse botão está no formulário de Cadastro da Aposentadoria?
Se form, meu access não tá conseguindo abri-lo. É o único que não consigo abrir.
Se form, meu access não tá conseguindo abri-lo. É o único que não consigo abrir.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Não, está no seguinte formulário: Inicial, tem uma autoexec para carregar o painel inicial, é só no botão de excluir registro que aparece as mensagens, quando se clica em cancelar, eu gostaria de que não abrisse nada.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Meu amigo, não consigo entrar no modo design da macro excluir, pra ver como a mesma está configurada.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Segure em shift e dê 2 cliques no bd que ele vai mostrar o painel de opções.
rdrck- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1011
Registrado : 11/03/2014
Isso já fiz. Consigo acessar o painel, porém não consigo abri-la no modo design.
Acontece que isso, realmente, é algo que acontece se cancelar uma macro.
Acontece que isso, realmente, é algo que acontece se cancelar uma macro.
.................................................................................
Meu Programa / OS:
Access 2010 - Windows 10.
guilherme_137- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 137
Registrado : 01/07/2011
Não tem como inibir a caixa de mensagem?
Conteúdo patrocinado