Marcia Torquato
-
Total de itens
10 -
Registro em
-
Última visita
Posts postados por Marcia Torquato
-
-
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:
(Resolvido) Caixa de combinação
em Access
Postado · Editado por Marcia Torquato
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.