Ir para conteúdo
Fórum Script Brasil

Marcia Torquato

Membros
  • Total de itens

    10
  • Registro em

  • Última visita

Sobre Marcia Torquato

Marcia Torquato's Achievements

0

Reputação

  1. 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.
  2. 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.
  3. 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!
  4. 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.
  5. 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.
  6. BRUCCE Valeu isso mesmo. Muito obrigada. Marcia
  7. 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:
  8. 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
  9. 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!
  10. 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:
×
×
  • Criar Novo...