Ir para conteúdo
Fórum Script Brasil

Humm

Membros
  • Total de itens

    570
  • Registro em

  • Última visita

Tudo que Humm postou

  1. não é so criar uma consulta referencia cruzada? onde você escolhe qual campo sera linha, outro para coluna, e outro para valor
  2. SeImed([vlr_Debito] >= 10000; SeImed([vlr_Debito] <= 50000; [vlr_debito]*-1; [vlr_debito]); [vlr_debito])
  3. Humm

    Auto-preencher?

    o access so pode prever aquilo que ele conhece.. no seu exemplo, você teria que ter todos esses valores em uma tabela.. ai sim funcionaria no meu caso, eu uso isso no campo municipio.. tenho uma tabela IBGE que contem todos os municipios. você tb pode criar um campo no form que pesquise os valores anteriormente digitados nele. para isso, você precisa criar uma combo box que pesquise os valores agrupados nela mesmo.
  4. pesquisando, achei uma função PickRandom() http://www.fontstuff.com/vba/vbatut02.htm
  5. Humm

    problema com rotina + SQL

    então.. olha essa.. na verdade esse codigo é para criar uma aquivo txt com o conteudo que você quiser. eu achei isso num exemplo q encontrei na internet. você pode baixar aqui http://www.esnips.com/doc/3d1eee0b-839f-4e...d0a49/ImpDireta no exemplo, o cara usa inner join, usa clausula where e o diabo a 4 com varias tabelas, e funciona na boa. ainda usa with com loop e o escambau.. hehe tudo vindo da sql e consegue. veja ai: Private Sub btImpDir_Click() '--------------------------------------------------------------------------------------- ' Procedimento : btImpDir_Click ' Data e Hora : 10/08/07 12:32 ' Autor : Osmar José Correia Júnior ' O que faz : Imprime um relatório direto para a impressora ' ' Utilize à vontade mas não altere este cabeçalho. ' Valorize quem o ajuda. '--------------------------------------------------------------------------------------- On Error GoTo Erro_btImpDir_Click Dim DB As DAO.Database Dim RSP As DAO.Recordset ' Pedidos Dim RSD As DAO.Recordset ' Detalhes dos pedidos Dim strSQL As String Dim Sai As String Dim CtaItens As Integer Dim SomaNor As Currency Dim SomaDesc As Currency Dim SomaReal As Currency strSQL = "SELECT Pedidos.NúmeroDoPedido, Pedidos.NomeDoDestinatário, Pedidos.EndereçoDoDestinatário, " strSQL = strSQL & "Pedidos.CidadeDeDestino, Pedidos.RegiãoDeDestino, Pedidos.CEPdeDestino, " strSQL = strSQL & "Pedidos.PaísDeDestino, Clientes.CódigoDoCliente, Clientes.NomeDaEmpresa, " strSQL = strSQL & "Clientes.Endereço, Clientes.Cidade, Clientes.Região, Clientes.CEP, Clientes.País, " strSQL = strSQL & "[Nome] & ' ' & [Sobrenome] AS Vendedor, Pedidos.DataDoPedido, Pedidos.DataDeEntrega, " strSQL = strSQL & "Pedidos.DataDeEnvio, Pedidos.Via, Pedidos.Frete, [transportadoras]![NomeDaEmpresa] AS Transp " strSQL = strSQL & "FROM Transportadoras INNER JOIN (Funcionários INNER JOIN " strSQL = strSQL & "(Clientes INNER JOIN Pedidos ON Clientes.CódigoDoCliente = Pedidos.CódigoDoCliente) " strSQL = strSQL & "ON Funcionários.CódigoDoFuncionário = Pedidos.CódigoDoFuncionário) " strSQL = strSQL & "ON Transportadoras.CódigoDaTransportadora = Pedidos.Via " strSQL = strSQL & "WHERE (((Pedidos.NúmeroDoPedido)=" & [Forms]![Pedidos]![NúmeroDoPedido] & "));" Set DB = CurrentDb Set RSP = DB.OpenRecordset(strSQL) ' Cria o recordset com o registro a ser impresso strSQL = "SELECT [Detalhes do Pedido].NúmeroDoPedido, [Detalhes do Pedido].CódigoDoProduto, " strSQL = strSQL & "Produtos.NomeDoProduto, [Detalhes do Pedido].PreçoUnitário, " strSQL = strSQL & "[Detalhes do Pedido].Quantidade, [Detalhes do Pedido].Desconto, " strSQL = strSQL & "([Detalhes do Pedido]![PreçoUnitário]*[Quantidade]) AS VlrNor, " strSQL = strSQL & "[VlrNor]*[Desconto] AS VlrDesc, [VlrNor]-[VlrDesc] AS VlrTot " strSQL = strSQL & "FRO M Categorias INNER JOIN (Produtos INNER JOIN [Detalhes do Pedido] " strSQL = strSQL & "ON Produtos.CódigoDoProduto = [Detalhes do Pedido].CódigoDoProduto) " strSQL = strSQL & "ON Categorias.CódigoDaCategoria = Produtos.CódigoDaCategoria " strSQL = strSQL & "WHERE ((([Detalhes do Pedido].NúmeroDoPedido)=" & [Forms]![Pedidos]![NúmeroDoPedido] & "));" Set RSD = DB.OpenRecordset(strSQL) strSQL = Application.CurrentProject.path Open strSQL & "\_TesteImp.txt" For Output As #1 ' Open "LPT1" For Output As #1 ' Abre o arquivo impressora ' Open "c:\_TesteImp.txt" For Output As #1 ' Estas duas linhas são utilizadas apenas como gabarito de posições ' Faça todos os testes em papel branco e compare o posicionamento com o formulário ' de saida, ignorando essas duas linhas Sai = " 1 2 3 4 5 6 7 8 9 0 1 2 3" Print #1, Sai Sai = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012" Print #1, Sai Sai = "---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+--" Print #1, Sai Print #1,: Print #1, Sai = Space(100) & Format(RSP!NúmeroDoPedido, "000000") Print #1, Sai Print #1,: Print #1, Sai = Space(10) & JustStr(RSP!NomeDaEmpresa, " ", 50) & Space(20) & JustStr(RSP!NomeDoDestinatário, " ", 50) Print #1, Sai Sai = Space(10) & JustStr(RSP!Endereço, " ", 50) & Space(20) & JustStr(RSP!EndereçoDoDestinatário, " ", 50) Print #1, Sai Sai = Space(10) & JustStr(RSP!Cidade, " ", 25) & " - " & JustStr(RSP!Região, " ", 15) & " - " & JustStr(RSP!CEP, " ", 24) & JustStr(RSP!CidadeDeDestino, " ", 25) & " - " & JustStr(RSP!RegiãoDeDestino, " ", 15) & " - " & RSP!CEPdeDestino Print #1, Sai Sai = Space(10) & JustStr(RSP!País, " ", 70) & RSP!PaísDeDestino Print #1, Sai Print #1,: Print #1, Sai = Space(10) & JustStr(RSP!Vendedor, " ", 70) & RSP!Transp Print #1, Sai Print #1,: Print #1, CtaItens = 0 SomaNor = 0 SomaDesc = 0 SomaReal = 0 With RSD .MoveFirst Do While Not .EOF Sai = Space(5) & JustStr(!CódigoDoProduto, " ", 10) & JustStr(!NomeDoProduto, " ", 40) & JustStr(!Quantidade, " ", 8, True) Sai = Sai & JustStr(Format(!PreçoUnitário, "#,##0.00"), " ", 15, True) & JustStr(Format(!VlrNor, "#,##0.00"), " ", 15, True) Sai = Sai & JustStr(Format(!Desconto, "#0.00%"), " ", 8, True) & JustStr(Format(!vlrdesc, "#,##0.00"), " ", 15, True) Sai = Sai & JustStr(Format(!vlrtot, "#,##0.00"), " ", 15, True) CtaItens = CtaItens + 1 SomaNor = SomaNor + !VlrNor SomaDesc = SomaDesc + !vlrdesc SomaReal = SomaReal + !vlrtot Print #1, Sai .MoveNext Loop End With Print #1,: Print #1, Sai = Space(55) & JustStr(CStr(CtaItens), " ", 8, True) & Space(15) & JustStr(Format(SomaNor, "#,##0.00"), " ", 15, True) Sai = Sai & Space(8) & JustStr(Format(SomaDesc, "#,##0.00"), " ", 15, True) & JustStr(Format(SomaReal, "#,##0.00"), " ", 15, True) Print #1, Sai Print #1,: Print #1, Sai = Space(93) & "TOTAL DA NOTA " & JustStr(Format(SomaReal, "#,##0.00"), " ", 15, True) Print #1, Sai Sai = Space(93) & "FRETE " & JustStr(Format(RSP!Frete, "#,##0.00"), " ", 15, True) Print #1, Sai Sai = Space(93) & "TOTAL FINAL " & JustStr(Format(SomaReal + RSP!Frete, "#,##0.00"), " ", 15, True) Print #1, Sai Print #1,: Print #1, Print #1,: Print #1, Print #1, " ISSO É SÓ UMA DEMONSTRAÇÂO DO QUE PODE SER FEITO" Print #1, " VEJA MAIORES INFORMAÇÕES SOBRE FORMATAÇÃO DE CARACTERES NO MANUAL DA SUA IMPRESSORA" Saida: Set DB = Nothing Set RSP = Nothing Close #1 Exit Sub Erro_btImpDir_Click: MsgBox Err.Description & vbCrLf & vbCrLf & "No módulo Form_Pedidos, tipo Documento VBA, procedimento btImpDir_Click", vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number) #If DESENV Then Stop Resume #End If Resume Saida End Sub eu não consigo adaptar o codigo na minha necessidade, sendo que to fazendo o mesmo q tem la, so mudando a string sql no caso, e o vba fica implicando com os campos. inclusive montando aconsulta, e depois copiando o codigo sql pra n ter erro. já comparei quase tudo, inclusive tem uma funçao em modulo la no exemplo. eu so consigo fazer funcionar a sql se eu torna-la simples.. por exemplo, ao invés de usar uma sql pra trazer todos os dados, relacionando tabelas com inner join e filtrando com where, eu criei uma consulta acrescimo antes e executo com docmd.openquery pra inserir todos os dados numa tabela unica, e a partir dela eu consigo chamar no sql do vba, porque fica sem inner join e sem where. sacou? mas eu queria entender porque n to conseguindo usar a sql que eu quero. a unica coisa que n comparei ainda é o formato dos campos que o cara usa no exemplo.. ve se você consegue desvendar essa.. pra quem ta trabalhando com nota fiscal eletronica, criar aquivos txt é uma boa
  6. Humm

    problema com rotina + SQL

    existe sim.. na verdade o codigo sql eu retirei d euma consulta funcionando hehe.. eu sempre crio a consulta pra retirar o codigo, saca... o problema é q o vba é muito sensivel com sql.. qualquer coisinha, encrespa. se eu tornara consulta menos complexa, retirando as relacoes inner join por exemplo, ele já funciona. vai entender?
  7. resolver n resolvi.. usei a solucao alternativa de criar um novo db e importar tudo. a versao do meu é 2007
  8. segue o codigo: Private Sub BT_GERA_CAD_Click() Dim DB As DAO.Database Dim NFE As DAO.Recordset Dim strSQL As String Dim Sai As String Dim PASTA As String Dim ARQUIVO As String strSQL = "SELECT CONFIG.CNPJ, CONFIG.RSOC, CONFIG.FANT, CONFIG.IE, CONFIG.END, CONFIG.NUM, CONFIG.COMP, " strSQL = strSQL & "CONFIG.BAIRRO, CONFIG.MUNICIPIO, IBGE_MUN.NomeMunic, CONFIG.UF, CONFIG.CEP, CONFIG.PAIS, BACEN_PAISES.PAIS, " strSQL = strSQL & "CONFIG.TEL FROM ((CONFIG INNER JOIN IBGE_UF ON CONFIG.UF = IBGE_UF.UF) INNER JOIN IBGE_MUN ON IBGE_UF.ID " strSQL = strSQL & "= IBGE_MUN.UF) INNER JOIN BACEN_PAISES ON CONFIG.PAIS = BACEN_PAISES.COD;" Set DB = CurrentDb Set NFE = DB.OpenRecordset(strSQL) 'PASTA E ARQUIVO PASTA = GetDesktopFolder() & "\NF-e" ARQUIVO = PASTA & "\Cadastro do Emitente - " & Format(Date, "DD-MM-YY") & ".txt" If FolderExists(PASTA) Then GoTo SEGUE Else MkDir (PASTA) End If SEGUE: If FileExists(ARQUIVO) Then If MsgBox("O arquivo já existe." & vbNewLine & "Deseja substituir o arquivo existente?", vbYesNo, "Atenção!") = vbNo Then GoTo Saida End If End If Open ARQUIVO For Output As #1 Sai = "A|1.01" Print #1, Sai Sai = "C|CNPJ|" & !CNPJ & "|" & !RS & "|" & !FANT & "|" & !IE & "||||" & !End & "|" & !Num & "|" & !Comp & "|" & !Bairro & "|" & !MUNICIPIO & "|" & !NOMEMUNIC & "|" & !UF & "|" & !CEP & "|" & !CONFIG.PAIS & "|" & !BACEN_PAISES.PAIS & "|" & !TEL & "|" Print #1, Sai MsgBox "Arquivo gerado com sucesso:" & vbNewLine & ARQUIVO, , "Mensagem" Saida: Set DB = Nothing Set NFE = Nothing Close #1 Exit Sub #If DESENV Then Stop Resume #End If Resume Saida End Sub ao tentar executar, o vba da erro de referencia invalida ou não qualificada no !CNPJ to copiando esse codigo de outro projeto de exemplo e não entendo onde ta o problema... porque ele não reconhece o CNPJ da SQL
  9. se você so quer zerar 1 campo ou mais, use a consulta atualizar escolha o campo, e em ATUALIZAR PARA escolha ="" então seus campos terao valor null agora se você quer excluir registros, ai sim use consulta excluir
  10. Humm

    Você Acha Possível?

    eu queria saber porque um tópico sem noção desses ta como fixo hahahah
  11. n teve jeito.. tive que criar novo bd e importar todo conteudo do bd anterior.
  12. Humm

    Código para validar CPF

    crie um modulo coloque essa função la '****************************************** 'Rotinas para cálculo de dígito verificador 'e validação de CNPJ e CPF 'Autor: Luiz Cláudio C. V. Rocha '****************************************** Public Function fDigCNPJ(CNPJ As String) As String 'Calcula os dígitos verificadores do CNPJ Dim i As Integer Dim intFator As Integer Dim intTotal As Integer Dim intResto 'Verifica se tem 12 ou 14 dígitos If Not (Len(CNPJ) = 12 Or Len(CNPJ) = 14) Then Exit Function Else 'Verifica se é numérico If Not IsNumeric(CNPJ) Then Exit Function Else 'Trunca o CNPJ em 12 caracteres CNPJ = Left$(CNPJ, 12) End If End If Inicio: 'Percorre as colunas (de trás para frente), 'multiplicando por seus respectivos fatores intFator = 2 intTotal = 0 For i = Len(CNPJ) To 1 Step -1 If intFator > 9 Then intFator = 2 intTotal = intTotal + ((CInt(Mid(CNPJ, i, 1)) * intFator)) intFator = intFator + 1 Next i 'Obtém o resto da divisão por 11 i = intTotal Mod 11 'Subtrai 11 do resto i = 11 - i 'O dígito verificador é i If i = 10 Or i = 11 Then i = 0 'Concatena ao CNPJ CNPJ = CNPJ & CStr(i) If Len(CNPJ) = 13 Then 'Calcula o segundo dígito GoTo Inicio End If 'Retorna os dígitos verificadores fDigCNPJ = Right$(CNPJ, 2) End Function Public Function fDigCPF(CPF As String) As String 'Calcula os dígitos verificadores do CPF Dim i As Integer Dim intFator As Integer Dim intTotal As Integer Dim intResto 'Verifica se tem 9 ou 11 dígitos If Not (Len(CPF) = 9 Or Len(CPF) = 11) Then Exit Function Else 'Verifica se é numérico If Not IsNumeric(CPF) Then Exit Function Else 'Trunca o CPF em 9 caracteres CPF = Left$(CPF, 9) End If End If Inicio: 'Percorre as colunas (de trás para frente), 'multiplicando por seus respectivos fatores intFator = 2 intTotal = 0 For i = Len(CPF) To 1 Step -1 intTotal = intTotal + ((CInt(Mid(CPF, i, 1)) * intFator)) intFator = intFator + 1 Next i 'Obtém o resto da divisão por 11 i = intTotal Mod 11 'Subtrai 11 do resto i = 11 - i 'O dígito verificador é i If i = 10 Or i = 11 Then i = 0 'Concatena ao CPF CPF = CPF & CStr(i) If Len(CPF) = 10 Then 'Calcula o segundo dígito GoTo Inicio End If 'Retorna os dígitos verificadores fDigCPF = Right$(CPF, 2) End Function Public Function fCNPJ(CNPJ As String) As Boolean 'Verifica se o CNPJ é válido Dim strChar As String 'Verifica se tem 14 caracteres If Not Len(CNPJ) = 14 Then fCNPJ = False Exit Function End If 'Verifica se o dígito verificador confere strChar = Mid$(CNPJ, 13, 2) If fDigCNPJ(CNPJ) = strChar Then fCNPJ = True Else fCNPJ = False End If End Function Public Function fCPF(CPF As String) As Boolean 'Verifica se o CPF é válido Dim strChar As String 'Verifica se tem 11 caracteres If Not Len(CPF) = 11 Then fCPF = False Exit Function End If 'Verifica se o dígito verificador confere strChar = Mid$(CPF, 10, 2) If fDigCPF(CPF) = strChar Then fCPF = True Else fCPF = False End If End Function agora no form que você deseja, crie um evento afterupdate do controle do CPF Private Sub C_CPF_afterupdate() 'verifica se o campo é nulo If Not IsNull(Me.C_CPF) Then 'se não é nulo, inicia a validacao do CPF com a função fCPF(campo) If fCPF(Me.C_CPF) = True Then 'se for valido, então msgbox "valido" Else 'se for invalido, então msgbox "invalido" End If End If End Sub para o cnpj, mesma coisa.. usando a funcao fCNPJ(campo)
  13. não sei o q fiz, mas meu vba não ta mais apresentando as mensagens de erro. mesmo que o codigo esteja errado, ele n faz nada.. apenas n executa o codigo. onde eu altero essa config? setwarnings já ta como true
  14. no access 2007: clica em FERRAMENTAS DE BANCO DE DADOS depois em ACESSAR BANCO DE DADOS então vai aparecer as opcoes sobre a divisão, é so ler direitinho e seguir as etapas. porem vai um aviso. o front end tem que ter a referencia do local onde está o back end. isso é escolhido quando você faz a divisao, no momento que você define onde o back end será salvo. como sua aplicacao está em rede, nesse momento você tem q selecionar um local cujo o acesso até ele se de por rede e não por path local. uma opcao para isso é definir no proprio servidor uma pasta compartilhada. depois, acesse essa pasta pelo proprio servidor via caminho de rede e mapeie uma unidade qualquer que não seja usada localmente, como C ou D. eu sempre opto por usar a letra Z: feito isso, você divide o projeto, e quando for escolher o local pra salvar o back end, você escolhe Z: então em cada cliente, você mapeia uma unidade que aponte pro servidor, nomeando essa unidade como Z: assim todos os clientes apontarao para o backend do servidor. outra forma, sem usar unidade mapeada, é você ao invés de mapear, criar localmente no servidor a pasta compartilhada atravez de path de rede e seguir os passos seguintes. tambem é apropriado proteger o arquivo back end com senha de acesso pelo proprio access. para evitar que as pessoas leiam o conteudo das tabelas. depois, com o front end, você pode compilar e remover o codigo fonte para evitar que seja alterado e torna-lo mais leve. para isso: clica em FERRAMENTAS DE BANCO DE DADOS depoir em CRIAR ACCDE OU MDE
  15. busco solucoes aqui.. tenho que compartilhar as minhas =)
  16. exclua o campo chave e crie um novo, costuma resolve ou duplique sua tabela, mas somente a estrutura.. depois copie os dados pra nova, sem o campo chave é claro. ai delete a antiga e renomeie a nova pro nome da antiga valeu
  17. acabei de instalar mais uma aplicacao.. servido com XP e cliente com seven.. usando back end e front end, funcionou de cara no esquema da unidade Z: mapeada
  18. o atalho aponta para unidade mapeada ou path de rede? lembro de dar problema ao usar paths de rede tipo \\ip\ tente mapear nos clientes a unidade do servidor, e teste porem eu acho que é mais rapido você partir pra divisao do arquivo do que tentar solucionar pinimbas de rede
  19. achei engraçado os termos "tabelamento de dados" e "tabulação".. hehe bom, é muito simples.. nas de uma opcao, faça como fez.. um campo box com opcoes pra escolher.. nos demais, é simples. crie um campo referente a cada opcao, campo do tipo SIM/não então o entrevistado apenas marca como sim ou checkbox o que quer. simples ne?
  20. olha essa.. eu removi o dlookup e ai tudo funcionou.. claro, sem aparecer o NOME de USER_LOGADO pois ai coloquei o dlookup novamente e continuou funcionando.. e essa? vai entender
  21. tenho uma rotina aqui: Private Sub DAVE_AfterUpdate() Me.DAVE.InputMask = "" Me.CATEGORIA = Forms!ENTRADAS.CATE Me.DTRG = Date Me.DOCU = Format(Forms!ENTRADAS.NOFI, "000000") Me.REFE = Format(Me.NUEN, "000000") Me.FORN = Forms!ENTRADAS.NUCL Me.CRED = Forms!ENTRADAS.NUCL.Column(1) Me.LOG = DLookup("[NOME]", "USER_LOGADO") & " - " & Now() End Sub eu não sei porque, os campos CRED e LOG não querem receber os dados.. se eu testo uma MsgBox "TESTE " & Forms!ENTRADAS.NUCL.Column(1) & DLookup("[NOME]", "USER_LOGADO") & " - " & Now() antes do codigo, aparecem os dados normalmente. e essa.. não entendi.
  22. bom, pelo seu relato, to vendo que essa aplicacao está mal distribuida. pode ser q eu esteja errado, mas pelo visto voce não dividiu a aplicacao em BACK END e FRONT END qualquer aplicacao se dá nos seguintes termos: Aplicacao ( FRONT END ) - Programa em si com as rotinas, forms, relatorios, consultas, codigos. Banco de Dados ( BACK END ) - Parte com as tabelas, que apenas armazena o que o FRONT END determina. então, primeiro você deve dividir seu arquivo mestre access em backend e front end. no proprio access, nas ferramentas do banco de dados, tem essa opcao. recomenda-se que você faça isso pelo proprio servidor, já determinando o diretorio atraves de path de rede ou unidade mapeada. por exemplo, no proprio servidor eu criei uma unidade mapeada de rede como unidade Z: e informei ao meu frontend que o banco de dados backend se encontra em Z:\bancodedados.mdb tambem é recomendado que você crie uma senha de acesso no proprio bancodedados.mdb para impedir que usuarios tentem abrir sua estrutura pra acessar os dados das tabelas. então voce deve hospedar no servidor o arquivo backend e ajustar as permissoes de rede do seu sistema operacional para que o arquivo aceite alteracoes vidas dos usuarios de rede permitidos. feito isso, voce deve então revisar o codigo do seu front end, compilar, e fechar o arquivo em mde / accde dependendo da versao do seu access. isso garante que nenhum usuario das estacoes vai fazer alteracoes nos front end. lembrando é que bom colocar em algum lugar no front end, alguma referencia quanto a sua versao. pois se no futuro você precisar alterar seu aplicativo, então você não vai se perder nas versoes. instale em cada maquina cliente, o access ou apenas o runtime, e salve um front end em cada maquina cliente do servidor. mapeie em cada maquina cliente, a unidade do servidor com o backend, como no meu exemplo, o Z: pronto, todas os frontend acessarao seu banco de dados simultaneamente, sem erros, tornando o sistema mais confiavel e muitoooo mais rapido. abraços
  23. tive que incrementar o codigo, pois ao selecionar uma data no calendario, não chega a gerar um update no campo. então ao pressionar ENTER ou TAB, acabava limpando o campo e abrindo a mascara de entrada. Private Sub DATA_AfterUpdate() Me.DATA.InputMask = "" End Sub Private Sub DATA_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Or KeyCode = vbKeyTab Then GoTo FIM ElseIf Me.DATA.InputMask = "" Or IsNull(Me.DATA.InputMask) Then Me.DATA.InputMask = "00/00/0000;0;_" End If FIM: End Sub
  24. consegui =) Private Sub DAVE_AfterUpdate() Me.DAVE.InputMask = "" End Sub Private Sub DAVE_KeyDown(KeyCode As Integer, Shift As Integer) If Me.DAVE.InputMask = "" Or IsNull(Me.DAVE.InputMask) Then Me.DAVE.InputMask = "00/00/0000;0;_" End If End Sub
  25. o access 2007 já vem com um selecionador de datas nativo, que mostra um calendario onde você seleciona a data e ele preenche o campo. porem, se eu usar mascara de entrada, o selecionador n aparece mais. alguém sabe como fazer para usar mascara + selecionador? por exemplo, pra forçar a exibição do selecionador de datas: DoCmd.RunCommand acCmdShowDatePicker pra definir a mascada de entrada do campo: Me.CAMPO.InputMask = "00/00/0000;0;_" já tentei forçar a exibicao do selecionador no campo com mascara, até aparece, e da pra selecionar.. mas ao selecionar, da erro. então to pensando num codigo que faça o seguinte.. ao clicar no campo, mostre o selecionadore remova a mascara de entrada.. porem, se você apertar qualquer tecla pra digitar, que entre a mascara e saia o selecionador.. e assim que terminar, suma a mascara.. sumir a mascara, eu coloco no afterupdate mas pra fazer entrar a mascara ao digitar, n to conseguindo..
×
×
  • Criar Novo...