
Marcia Torquato
Membros-
Total de itens
10 -
Registro em
-
Última visita
Sobre Marcia Torquato

Marcia Torquato's Achievements
0
Reputação
-
MrMALJ Bom dia! Deu para resolver. Agora até mesmo se você colocar uma informação mais tarde ele já esta programado para preencher todos os dados alterados. Exemplo, você não sabe o CEP para não travar o processo deixará o campo para depois e continuará com as outras informações. Quando souber o CEP no formRuas ao colocar o número do CEP automaticamente na Rua daquele CEP no formDados será preenchido automaticamente. Segue a solução:(Caixa de combinação do FormDados em Após atualizar) Option Compare Database Private Sub ExibirDados() If IsNull(Me.CódigoRua.Value) Or Not IsNumeric(Me.CódigoRua.Value) Then Exit Sub End If Me.Endereço.Value = _ DLookup("Endereço", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.CEP.Value = _ DLookup("CEP", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.ResponsavelRua.Value = _ DLookup("ResponsavelRua", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.Setor.Value = _ DLookup("Setor", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.Bairro.Value = _ DLookup("Bairro", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.Cidade.Value = _ DLookup("Cidade", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.UF.Value = _ DLookup("UF", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) End Sub Private Sub CódigoRua_AfterUpdate() Call ExibirDados Me.Recalc End Sub Private Sub Form_AfterUpdate() Me.Recalc End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub Com relação a atualizar automaticamente para depois a solução é esta (formRuas em Após atualizar): Private Sub CEP_AfterUpdate() DoCmd.RunSQL "UPDATE Tab_Dados SET Tab_Dados.CEP = Forms!FormRuas!CEP WHERE (((Tab_Dados.CódigoRua)=[Forms]![FormRuas]![CódigoRua]));" End Sub Agradeço a atenção de todos.
-
MrMALJ Perdão. Bem o que ocorreu foi o seguinte. Tenho duas tabelas, uma de dados onde tenho, nome completo, idade , fone...Endereço. E outra tabela de cadastro de ruas, onde tenho CEP, setor, Rua,Responsável. No formulário Dados cadastrais criei uma caixa de combinação de ruas, baseado na tabela ruas, ou seja quando o usuário começar a cadatrar uma nova pessoa e chegar na caixa de combinação, escolherá a Rua em que o morador esta situado e os dados Endereço, CEP,Setor, Responsável, será preenchido automaticamente, sem ter que entrar em um novo formulário para preencher esta informação. Antes eu estava conseguindo fazer o processo com dois formulários o que não é prático, já que as pessoas que usarão o sistema nunca utilizaram um computador ou conhecem muito pouco, portanto a minha idéia é deixa-lo o mais prático e didático possível. Espero ter me expressado melhor.
-
Oi Deixa 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 por extenso (sexta-feira, 28 de novembro de 2008), você pode alterar a tabela para data abreviada e caso não queira mecher na tabela vá no teu relatório e na caixa de texto Data em propriedades/dados altere a mascará 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 queria que aparecesse apenas o dia da semana. Com relação ao valor em R$ confesso que não entendi exatamente o que você quer!
-
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 Then Exit Function End If Dim nContador, nTamanho As Integer Dim cValor, cParte, cFinal As String ReDim aGrupo(4), aTexto(4) As String ReDim aUnid(19) As String aUnid(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 String aDezena(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 String aCentena(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 4 cParte = aGrupo(nContador) nTamanho = Switch(Val(cParte) < 10, 1, Val(cParte) < 100, 2, Val(cParte) < 1000, 3) If nTamanho = 3 Then If Right$(cParte, 2) <> "00" Then aTexto(nContador) = aTexto(nContador) + aCentena(Left(cParte, 1)) + "E " nTamanho = 2 Else aTexto(nContador) = aTexto(nContador) + IIf(Left$(cParte, 1) = "1", "CEM ", aCentena(Left(cParte, 1))) End If End If If nTamanho = 2 Then If Val(Right(cParte, 2)) < 20 Then aTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 2)) Else aTexto(nContador) = aTexto(nContador) + aDezena(Mid(cParte, 2, 1)) If Right$(cParte, 1) <> "0" Then aTexto(nContador) = aTexto(nContador) + "E " nTamanho = 1 End If End If End If If nTamanho = 1 Then aTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 1)) End If Next If Val(aGrupo(1) + aGrupo(2) + aGrupo(3)) = 0 And Val(aGrupo(4)) <> 0 Then cFinal = aTexto(4) + IIf(Val(aGrupo(4)) = 1, "CENTAVO", "CENTAVOS") Else cFinal = "" 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 Then cFinal = cFinal + "DE " Else If Val(aGrupo(3)) = 0 Then cFinal = cFinal + IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL ", "") Else cFinal = 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 If End If cFinal = 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 If Extenso95 = cFinal End Function 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 = "" Then txtExtenso = Null Exit Sub Else txtExtenso = Extenso95(txtValor.Text) End If Desculpe...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 = "" Then txtExtenso = Null Exit Sub Else txtExtenso = Extenso95(txtValor.Text) End If Na caixa de texto após atualizar cole somente somente esta parte: If IsNull(txtValor) Or txtValor = "" Then txtExtenso = Null Exit Sub Else txtExtenso = 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.
-
Oi Para fazer o que você quer com relação a data, a única forma que conheço é mudar as configurações regionais DATA 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.
-
BRUCCE Valeu isso mesmo. Muito obrigada. Marcia
-
Olá novamente! Tenho um formulário baseado em um consulta, quero impedir que os registros sejam editados e excluidos, porém não quero impedir a adição de novos cadastros, alguém sabe como fazer isso? Obrigada :blush:
-
Consegui ajuda. A resposta esta aí. Option Compare Database Private Sub ExibirDados() If IsNull(Me.CódigoRua.Value) Or Not IsNumeric(Me.CódigoRua.Value) Then Exit Sub End If Me.Endereço.Value = _ DLookup("Endereço", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.CEP.Value = _ DLookup("CEP", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) Me.ResponsavelRua.Value = _ DLookup("ResponsavelRua", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value))) End Sub Private Sub CódigoRua_AfterUpdate() Call ExibirDados Me.Recalc End Sub Private Sub Form_AfterUpdate() Me.Recalc End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub
-
Jonatham Sei lidar com o access através dos botões. :blush: Como faço para colocar os códigos aqui? Quando vou no meu formulário e na barra design do formulário clico em código, abre o VB porém só aparece: Option Compare Database Option Explicit :blink: Obrigada por me responder!
-
Prezados colegas: Já pesquisei nos tópicos sobre caixa de combinação e não encontrei a solução para a minha dúvida. Ou melhor encontrei um próximo, porém não me deu a idéia de como fazer, já que a dúvida esta além da minha. Tenho duas tabelas, uma é de Ruas onde tem os seguintes campos, Nome da Rua, CEP e setor e outra é de dados, onde terei o nome da pessoa, data de nascimento, idade e afins. No meu formulário de Dados eu gostaria que através de uma caixa de combinação fosse localizado a Rua que cadastrei na tabela e ao selecionar a Rua os demais campos como CEP e setor fossem preenchidos automáticamente. Não consigo fazer esse processo. Encontrei caminho para usar dois formulários, como ter um de DADOS e com um botão de comando acessar outro formulário que seria o de RUAS. Mas esta não é a minha intenção, pois quero deixar tudo em um único formulário para ficar o mais didático possível. Se por ventura tiver algum tópico com esta resposta, peço antecipadamente desculpas, pois confesso que não encontrei. E se puderem me indicar ficarei imensamente agradecida. Obrigada a todos pela atenção! :mellow: