[Resolvido] Access 2013, como formatar campo para ano numa tabela?
|
17-04-2014, 18:05
(Esta mensagem foi modificada pela última vez a: 19-04-2014 14:14 por Ad-minister.)
Mensagem: #1
|
|||
|
|||
[Resolvido] Access 2013, como formatar campo para ano numa tabela?
Olá.
Como criar um campo "Ano", apenas de 4 dígitos numa tabela Access 2013? Quero digitar apenas "13" e que o valor do campo na tabela seja apresentado como "2013" Obrigado desde já pela v/ ajuda. |
|||
17-04-2014, 19:04
Mensagem: #2
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Olá
Não sei se isso pode ser feito com os formatos de data do próprio Access, uma vez que ao introduzires 13, pode ser 2013, 1913, 2113, etc. Podes contornar isso através de VBA, crias o campo "Ano" como texto e quando colocares o campo num formulário por exemplo, trabalhas sobre o evento "Depois de actualizar" desse mesmo campo, fazendo o seguinte, Código: Me.ano.Value = "20" & Me.ano.Value Sempre que introduzires 13, o valor apresentado e guardado é 2013, o mesmo para 14. Esta forma de fazer as coisas tem alguns riscos, por exemplo, se alguém introduzir 2014 o resultado será 202014. Para evitar isto tens de testar o que o utilizador introduz. Assim de repente, Código: Private Sub ano_AfterUpdate() Caso seja introduzido 14, o resultado é 2014, caso introduzam 2014 o resultado é 2014. Esta é uma forma, pode haver outra... “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
17-04-2014, 21:37
Mensagem: #3
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Quando um campo "data" é formatado aa/mm/dd basta escrever 13/12/12 para mostrar como 2013/12/12. Não é possível aproveitar isso para mostrar só a parte do ano? Para facilitar a introdução de dados queria usar só duas teclas para introduzir o ano.
|
|||
17-04-2014, 22:41
(Esta mensagem foi modificada pela última vez a: 17-04-2014 22:43 por nioxys.)
Mensagem: #4
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Penso que isso não funciona num campo formatado como Data. Uma vez que um campo formatado como data pressupõe a introdução de um valor válido, ou seja, de uma data válida e 14 ou 13 não é uma data válida.
Podes fazer uma experiência simples, usando até o Excel, se formatares uma célula como data e introduzires o valor 14 o Excel retorna 14/01/1900. Isto porque a forma como o Excel/Access guardam as datas é através do número de dias que passaram desde 1900. Por exemplo, se colocares a data de hoje 17/04/2014 o valor guardado é 41746, uma vez que passaram 41746 dias desde 01/01/1900. Se colocares 41746 num campo Data o resultado é 17/04/2014. A meu ver podemos formatar uma data válida numa data abreviada mas penso que não conseguimos partir de uma abreviação para uma data. Eu entendo desta forma mas posso estar enganado. Espera por mais opiniões. Para completar, as datas/horas são guardadas no seguinte formato dddddd,hhhhhh, ou seja, a parte inteira é a data (número de dias desde 1900) e a parte decimal é a hora. Por exemplo 12:00 é guardado como 0,5, uma vez que 12 é metade de 24 “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
17-04-2014, 23:05
(Esta mensagem foi modificada pela última vez a: 18-04-2014 11:21 por Ad-minister.)
Mensagem: #5
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Obrigado nioxys pela ajuda, talvez experimente esse código qd chegar ao form.
Mas ainda estou na tabela e estava a experimentar assim: Tenho outra tabela ANO tipo matriz; ANO_ID ANO 01 2001 02 2002 … … 13 2013 14 2014 Mas como digitar 13 e apresentar o resultado da 2ª coluna (2013)? Numa consulta é fácil ir buscar a 2ª coluna. No entanto na tabela, poderia ser na construção do campo em "Tipo de dados>Calculado"? Como? |
|||
17-04-2014, 23:18
Mensagem: #6
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Desculpa mas não percebi muito bem o que pretendes.
Tens uma tabela com os anos, com os campos ANO_ID e ANO. Até aqui percebi. Tu queres introduzir o 13, 14, etc onde? Percebi que é numa tabela, mas numa outra ou na mesma? E no campo onde introduzes 13 é onde queres que apareça 2013? Desculpa as perguntas mas não estou a perceber o que pretendes fazer. “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
18-04-2014, 08:21
Mensagem: #7
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Sim é isso.
Na mesma tabela de nome "DOCS" tenho um campo "ANO" e quero digitar apenas "13" e visualizar 2013. A tua primeira sugestão com o código parece-me boa, mas ainda queria tentar outra conforme expliquei antes. Agora tenho o campo "ANO" a pesquisar outra tabela, digito "13" mas ainda não me mostra o valor da 2ª coluna... Se fosse com uma consulta era fácil, mas assim como seria? |
|||
18-04-2014, 11:29
Mensagem: #8
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Tens duas tabelas, uma com Ano_ID e Ano e outra tabela Docs com o campo Ano, queres ao introduzir um valor no campo Ano da tabela Docs o Access compare esse mesmo valor com o campo Ano_ID da tabela Ano e retorne o ano correspondente, que por sua vez se encontra no campo Ano.
É isto? Penso que directamente na tabela não consegues fazer, ou melhor, de forma simples talvez não dê. Pelo que entendo tu queres que os dados sejam estruturados na forma de tabela e daí que não tenhas avançado para o formulário, estou certo? De qualquer forma o Access possibilita que um formulário seja apresentado no formato tabela, a chamada vista "Folha de dados" e se criares um formulário com base na tabela Docs utilizando a vista folha de dados a única coisa que tens de fazer para obter o resultado que pretendes é utilizar a função Dlookup no evento "Depois de Actualizar" do campo Ano da tabela Docs no formulário associado. A função Dlookup e semelhante à função Procv do Excel e tem os seguintes parâmetros, Dlookup("Campo a Pesquisar", "Tabela", "Critérios") No teu caso seria algo do género, Código: Me.Ano = DLookup("Ano", "tblAno", "Ano_id=" & Me.Ano & "") Sempre que introduzires 13 o resultado é 2013, uma vez que ele efectua a pesquisa pelo 13 no campo Ano_ID e devolve o valor associado que se encontra no campo Ano, neste caso 2013. Deixo-te aqui um exemplo, Access_Dlookup - Download Abre o formulário Docs e introduz um valor, 13, 14, etc... “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
18-04-2014, 13:41
Mensagem: #9
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
E nas propriedades, em Tipo de dados >Calculado? É possível criar aqui
Obs: a Access_Dlookup - Download é uma boa hipótese |
|||
18-04-2014, 16:27
Mensagem: #10
|
|||
|
|||
RE: Access 2013, como formatar campo para ano numa tabela?
Já experimentei com uma consulta mas o resultado não aparece no campo em questão mas sim na folha da consulta.
Também tentei colocar a expressão Dlookup num campo calculado sem resultados. Se dá para fazer directamente no campo da tabela eu não faço ideia como se faz, sou sincero. Pode ser que alguém saiba e aprendemos os dois. “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 6 Visitante(s)