Parenti Postado Novembro 28, 2008 Denunciar Share Postado Novembro 28, 2008 Olá pessoal do ScriptBrasil, estou com uns problemas no Access...Estou tentando colocar Valor por Extenso, por exemplo eu digito R$ 1.000,00 e converte para Mil ReaisOutro probleminha: Escolhi o Formato Data Completa, e apareceu terça-feira, 30 de novembro de 2008, preciso tirar o "terça-feira,"desde já agradeço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcia Torquato Postado Novembro 28, 2008 Denunciar Share Postado Novembro 28, 2008 OiPara fazer o que você quer com relação a data, a única forma que conheço é mudar as configurações regionaisDATA COMPLETA: Exibe de acordo com a sua configuração regional do Painel de controle do windows -» Terça, 25 de agosto de 2007 (exemplo).Se mudar lá, deixar apenas para que apareça o dia/mês/ano verá que no teu banco de dados ficará do mesmo modo.Porém deve existir um outro meio; que nossos caros colegas devem saber.Não devo ter ajudado muito, porém vai que a informação te ajude. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Novembro 28, 2008 Autor Denunciar Share Postado Novembro 28, 2008 Olá Marcia Torquato, obrigado pela Ajuda... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcia Torquato Postado Novembro 28, 2008 Denunciar Share Postado Novembro 28, 2008 Com relação ao valor por extenso tente esta dica, fiz e deu certo.E não manjo de linguagem VBA.Function Extenso95(nValor)If IsNull(nValor) Or nValor <= 0 Or nValor > 9999999.99 ThenExit FunctionEnd IfDim nContador, nTamanho As IntegerDim cValor, cParte, cFinal As StringReDim aGrupo(4), aTexto(4) As StringReDim aUnid(19) As StringaUnid(1) = "UM ": aUnid(2) = "DOIS ": aUnid(3) = "TRES "aUnid(4) = "QUATRO ": aUnid(5) = "CINCO ": aUnid(6) = "SEIS "aUnid(7) = "SETE ": aUnid(8) = "OITO ": aUnid(9) = "NOVE "aUnid(10) = "DEZ ": aUnid(11) = "ONZE ": aUnid(12) = "DOZE "aUnid(13) = "TREZE ": aUnid(14) = "QUATORZE ": aUnid(15) = "QUINZE "aUnid(16) = "DEZESSEIS ": aUnid(17) = "DEZESSETE ": aUnid(18) = "DEZOITO "aUnid(19) = "DEZENOVE "ReDim aDezena(9) As StringaDezena(1) = "DEZ ": aDezena(2) = "VINTE ": aDezena(3) = "TRINTA "aDezena(4) = "QUARENTA ": aDezena(5) = "CINQUENTA "aDezena(6) = "SESSENTA ": aDezena(7) = "SETENTA ": aDezena(8) = "OITENTA "aDezena(9) = "NOVENTA "ReDim aCentena(9) As StringaCentena(1) = "CENTO ": aCentena(2) = "DUZENTOS "aCentena(3) = "TREZENTOS ": aCentena(4) = "QUATROCENTOS "aCentena(5) = "QUINHENTOS ": aCentena(6) = "SEISCENTOS "aCentena(7) = "SETECENTOS ": aCentena(8) = "OITOCENTOS "aCentena(9) = "NOVECENTOS "cValor = Format$(nValor, "0000000000.00")aGrupo(1) = Mid$(cValor, 2, 3)aGrupo(2) = Mid$(cValor, 5, 3)aGrupo(3) = Mid$(cValor, 8, 3)aGrupo(4) = "0" + Mid$(cValor, 12, 2)For nContador = 1 To 4cParte = aGrupo(nContador)nTamanho = Switch(Val(cParte) < 10, 1, Val(cParte) < 100, 2, Val(cParte) < 1000, 3)If nTamanho = 3 ThenIf Right$(cParte, 2) <> "00" ThenaTexto(nContador) = aTexto(nContador) + aCentena(Left(cParte, 1)) + "E "nTamanho = 2ElseaTexto(nContador) = aTexto(nContador) + IIf(Left$(cParte, 1) = "1", "CEM ", aCentena(Left(cParte, 1)))End IfEnd IfIf nTamanho = 2 ThenIf Val(Right(cParte, 2)) < 20 ThenaTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 2))ElseaTexto(nContador) = aTexto(nContador) + aDezena(Mid(cParte, 2, 1))If Right$(cParte, 1) <> "0" ThenaTexto(nContador) = aTexto(nContador) + "E "nTamanho = 1End IfEnd IfEnd IfIf nTamanho = 1 ThenaTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 1))End IfNextIf Val(aGrupo(1) + aGrupo(2) + aGrupo(3)) = 0 And Val(aGrupo(4)) <> 0 ThencFinal = aTexto(4) + IIf(Val(aGrupo(4)) = 1, "CENTAVO", "CENTAVOS")ElsecFinal = ""cFinal = cFinal + IIf(Val(aGrupo(1)) <> 0, aTexto(1) + IIf(Val(aGrupo(1)) > 1, IIf(aGrupo(2) Mod 100 = 0, "MILHÕES ", "MILHÕES, "), IIf(aGrupo(2) Mod 100 = 0, "MILHÃO E ", IIf(aGrupo(2) = 0 And aGrupo(3) = 0, "MILHÃO ", "MILHÃO, "))), "")If Val(aGrupo(2) + aGrupo(3)) = 0 ThencFinal = cFinal + "DE "ElseIf Val(aGrupo(3)) = 0 ThencFinal = cFinal + IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL ", "")ElsecFinal = cFinal + IIf(Val(aGrupo(3)) Mod 100 = 0 And aGrupo(4) = 0, IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL E ", ""), IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL, ", ""))End IfEnd IfcFinal = cFinal + aTexto(3) + IIf(Val(aGrupo(1) + aGrupo(2) + aGrupo(3)) = 1, "REAL ", "REAIS ")cFinal = cFinal + IIf(Val(aGrupo(4)) <> 0, "E " + aTexto(4) + IIf(Val(aGrupo(4)) = 1, "CENTAVO", "CENTAVOS"), "")End IfExtenso95 = cFinalEnd FunctionPara testa-la, experimente inserir num formulário 2 caixas de texto, sendo uma para receber valores monetários (que poderemos chama-la de "txtValor") e a outra para observar o resultado da conversão (denominada "txtExtenso"). No evento "AfterUpdate" da primeira, cole o código abaixo:If IsNull(txtValor) Or txtValor = "" ThentxtExtenso = NullExit SubElsetxtExtenso = Extenso95(txtValor.Text)End IfDesculpe...faltou informar:Esta formula você tem que criar um módulo para ela.Esta informação você não cole neste módulo:Para testa-la, experimente inserir num formulário 2 caixas de texto, sendo uma para receber valores monetários (que poderemos chama-la de "txtValor") e a outra para observar o resultado da conversão (denominada "txtExtenso"). No evento "AfterUpdate" da primeira, cole o código abaixo:If IsNull(txtValor) Or txtValor = "" ThentxtExtenso = NullExit SubElsetxtExtenso = Extenso95(txtValor.Text)End If Na caixa de texto após atualizar cole somente somente esta parte:If IsNull(txtValor) Or txtValor = "" ThentxtExtenso = NullExit SubElsetxtExtenso = Extenso95(txtValor.Text)End If É a única coisa que consegui fazer sem dar erro.A problema é que gera duas caixas.Mas enfim...quem sabe te ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Novembro 28, 2008 Autor Denunciar Share Postado Novembro 28, 2008 Olá Marcia Torquato, obrigado pelas ajudas...Porém em relação ao Valor por Extenso estou precisando de algo assim:Nas propriedades do campo data (tabela):Formato: Data CompletaMáscara de entrada: 99/99/0000;0;_Quando eu Digito: 10/11/2008troca sozinho (e aparece no relatório): terça, 10 de novembro de 2008Gostária de configurar para ficar assim:Formato: um mil reaisMáscara de entrada: R$ 1.000,00Estava pensando em algo como o construtor de eventosse puder me ajudar eu agradeço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcia Torquato Postado Novembro 28, 2008 Denunciar Share Postado Novembro 28, 2008 (editado) OiDeixa ver se eu entendi.Pelo que você escreveu, tu quer data abreviada 28/11/2008,se na tua tabela esta configurado para data completa vai aparecer porextenso (sexta-feira, 28 de novembro de 2008), você pode alterar a tabela para data abreviada e caso não queira mecher na tabela vá noteu relatório e na caixa de texto Data em propriedades/dados altere amascará de entrada para Data Abreviada...Só estou na dúvida se é isso que você quer.E me desculpe na primeira, eu havia entendido que você não queriaque aparecesse apenas o dia da semana.Com relação ao valor em R$ confesso que não entendi exatamente o que você quer! Editado Novembro 28, 2008 por Marcia Torquato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Novembro 28, 2008 Autor Denunciar Share Postado Novembro 28, 2008 Então Marcia TorquatoEu já consegui fazer isso:Quando eu Digito: 10/11/2008troca sozinho (e aparece no relatório): terça, 10 de novembro de 2008Como eu fiz?fui em estrutura da tabela e no campo data eu configurei:Formato: Data CompletaMáscara de entrada: 99/99/0000;0;_Beleza, terminado (com a Data)O problema é que eu Gostária de configurar da mesma forma, porém em outro campo (o campo valor):Formato: um mil reais //tentar aqui implementar aquele código que você me passou, pois o normal aqui é definir como moedaMáscara de entrada: R$ 1.000,00 //E na Máscara de Entrada eu usar o estilo Moedaobrigado pela atenção Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Dezembro 1, 2008 Autor Denunciar Share Postado Dezembro 1, 2008 Oi Marcia Torquato, quero agradecer suas ajudas e dizer que a solução (em forma de exemplo) tem nesse link:Quem quizer escrever por Extenso ou Preenchimento de Cheques pode usar esse exemplo:http://www.esnips.com/doc/c40a3440-8525-49...78e/DemoExtensoPreenchimento de ChequesValeu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Parenti
Olá pessoal do ScriptBrasil, estou com uns problemas no Access...
Estou tentando colocar Valor por Extenso, por exemplo eu digito R$ 1.000,00 e converte para Mil Reais
Outro probleminha: Escolhi o Formato Data Completa, e apareceu terça-feira, 30 de novembro de 2008, preciso tirar o "terça-feira,"
desde já agradeço!
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.