Você está na página 1de 10

Cores de fundo recomendadas: 14207934, 16764057 OCULTAR / EXIBIR A BARRA DE FERRAMENTAS DO ACCESS ESCREVER EM AO CLICAR EM UM BOTAO DE COMANDO OU EM AO FECHAR

UM FORMULARIO O SEGUINTE: OCULTAR CommandBars.ActiveMenuBar.Enabled = False EXIBIR CommandBars.ActiveMenuBar.Enabled = True ============================================================== OCULTAR / EXIBIR A JANELA DO BANCO DE DADOS EM UM MDULO COLOQUE O SEGUINTE CDIGO Public Function mostraEscondeJanela(esconde As Boolean) ' A varivel Esconde deve ser: ' True - para esconder a janela BD ' False - para exibir a janela DoCmd.SelectObject acTable, , True If esconde Then DoCmd.RunCommand acCmdWindowHide End If End Function EM UM BOTO DE COMANDO NA ABA EVENTO DAS PROPRIEDADES, [PROCEDIMENTO DO EVENTO], NO EDITOR DO VBA DIGITE A FUNAO ESCRITA NO MDULO: PARA OCULTAR mostraEscondeJanela(True) PARA MOSTRAR mostraEscondeJanela(False) ==============================================================

FORMULRIO QUE ABRE O BANCO DE DADOS COM USURIO E SENHA CADASTRADA EM UMA TABELA PRPRIA PARA CADASTRAR USURIOS E SENHAS. FAA UM FORMULARIO COMO A IMAGEM ABAIXO

NO BOTO, NO MODO ESTRUTURA, NAS PROPRIEDADES, ABA EVENTO DIGITE O CDIGO ABAIXO: Private Sub btn_entrar_Click() On Error Resume Next Dim t As DAO.Recordset, D As Database Set D = CurrentDb Set t = D.OpenRecordset("tab_senha", dbOpenDynaset) tab_senha a tabela onde While t.EOF = False armazenadas senhas e usuarios If LOGON = t!LOGON And SENHA = t!SENHA Then MsgBox "SENHA E USURIO CONFIRMADOS!", vbInformation, "AVISO !" LOGON e SENHA so os nomes no form dos campos destinados a nome e senha Me.Visible = False Me.LOGON = Null Me.SENHA = Null Exit Sub Else t.MoveNext End If Wend MsgBox "USURIO OU SENHA INCORRETOS!", vbCritical, "AVISO !" End Sub

FORMULRIO QUE ABRE O BANCO DE DADOS COM SENHA SEM CADASTRO EM UMA TABELA PRPRIA PARA CADASTRAR SENHAS. E UM CONTADOR DE VEZES DE CLIQUES COM ERRO DE DIGITAO DA SENHA. Private Sub Bsenha_Click() 'primeiro o foco vai para a caixa de texto onde se digita a senha txtSenha.SetFocus 'declarao e valores para as variaveis Dim usuarioGenecilio As String usuarioGenecilio = "cb22outu68" Dim usuarioConsuelo As String usuarioConsuelo = "123" 'se a caixa de texto tiver o valor igual a uma das variveis If txtSenha.Value = usuarioGenecilio Or txtSenha.Value = usuarioConsuelo Then 'fecha o formulrio de senha DoCmd.Close 'mensagem de boas vindas ao bd MsgBox "ACESSO PERMITIDO, SEJA BEM VINDO, BOM TRABALHO", vbInformation, "AVISO" 'abre o formulrio desejado DoCmd.OpenForm "frm_principal" 'se no Else 'caixa de mensagem avisando que a senha est incorreta MsgBox "SENHA INCORRETA, TENTE OUTRA VEZ!", vbCritical, "ALERTA" 'limpa a caixa de texto onde se digita a senha txtSenha = Null 'contador de vezes que foi clicado o botao de acesso sem que a senha fosse correta 'esse contador uma caixa de texto no formulario que fica invisivel e valor padrao 0 Me.FContador = Me.FContador.Value + 1 'volta o foco para a caixa de texto onde se digita a senha txtSenha.SetFocus 'quando o valor do contador no formulario for igual a 5 If Me.FContador.Value = 5 Then 'caixa de mensagem falando que o numero de tentativas chegou no limite MsgBox "VO CHEGOU AO LIMITE DE TENTATIVAS DE ACESSO AO BD, PROCURE O ADMINISTRADOR", vbCritical, "ALERTA" 'em seguida, o programa fechado DoCmd.Quit fim do Segundo if End If 'fim do primeiro if End If

End Sub Boto para inserir dados em uma tabela utilizando um formulrio no acoplado: Private Sub cmbGravarNovoProd_Click() Dim Sql As String If MsgBox("DESEJA ARMAZENAR NA TABELA ESTE NOVO PRODUTO?", vbYesNo) = vbYes Then Sql = "INSERT INTO Produto (Nome, Preco, Quantidade) VALUES (txtNomeProd, txtPrecoProd, txtQuantidadeProd)" DoCmd.RunSQL Sql MsgBox "NOVO PRODUTO ARMAZENADO NA TABELA COM EXITO", vbInformation End If txtNomeProd = Null txtPrecoProd = Null txtQuantidadeProd = Null txtNomeProd.SetFocus End Sub Boto para atualizar um produto em uma tabela utilizando formulrio no acoplado. Private Sub btnGravar_Click() If MsgBox("deseja gravar nova quantidade no estoque?", vbYesNoCancel, "opes") = vbYes Then DoCmd.RunSQL ("update Produto set Quantidade = (Formulrios![FPrincipal]! [FAtualizaEstoqProd]![txtNovaQuantEstoque])where Produto.CodigoProduto=(Formulrios![FPrincipal]![FAtualizaEstoqProd]! [cmbCodigo]);") End If Me.cmbCodigo = Null Me.txtNomeProduto = Null Me.txtQuantExisEstoque = Null Me.txtQuantASomar = Null Me.txtNovaQuantEstoque = Null cmbCodigo.SetFocus End Sub Ou======
Private Sub SeuBoto_Click() 'By JPaulo Maximo Access Dim strSql As String strSql = "UPDATE Tabela2,Tabela1 " strSql = strSql & "SET Tabela2.Campo2 = Tabela1.Campo1 WHERE Tabela2.CampoID=Tabela1.CampoID;" CurrentDb.Execute (strSql) End Sub

CASO UM ITEM NO ESTEJA NA LISTA DA CAIXA DE COMBINAO Private Sub plantao_NotInList(NewData As String, Response As Integer) Dim sql As String If MsgBox(" PLANTO NO CADASTRADO " & Chr(13) & Chr(13) & " DESEJA CADASTRAR O PLANTO " & UCase(NewData) & " AGORA? ", vbYesNo, "Cadastro") = vbYes Then sql = "INSERT INTO tbl_plantao (nome_plantao) VALUES ('" & NewData & "')" DoCmd.RunSQL sql Response = acDataErrAdded Else Response = acDataErrDisplay End If End Sub

FECHAR FORMULARIO ATAVES DE UM BOTO OU AO FECHAR OUTRO FORMULARIO No boto na propriedade ao clicar ; Em outro formulrio na propriedade ao fechar; Colocamos o seguinte cdigo: DoCmd.Close acForm, "frm_principal", acSaveYes

PARCELAMENTO DE CONTA Private Sub Comando12_Click() Dim i, strPrestacoes As Integer Dim strValor As Currency Dim strData As Date strPrestacoes = [Forms]![Credito]![Contrato]![Meses] strValor = [Forms]![Credito]![Contrato]![Valor] / strPrestacoes

strData = [Forms]![Credito]![Contrato]![Data] If Parcela = "" Or IsNull(Parcela) Or Parcela = "0" Then For i = 1 To strPrestacoes DoCmd.GoToRecord , , acNewRec Me.Parcela = i Me.Valor = strValor Me.Vencimento = DateAdd("m", i - 1, strData) Next Else MsgBox "J foram calculadas as prestaes deste contrato." _ & " Para calcular novamente tem que apagar as actuais.", vbCritical, "Erro" End If End Sub

Me.fParcelas.SetFocus If Me.fParcelas.Text = Me.fFContador.Value Then DoCmd.Close acForm, "frm_compraParcelada", acSaveYes Caso cancelar uma solicitao (tratar erro em boto de comando) Private Sub Comando10_Click() On Error GoTo Err_Comando10_Click Dim stDocName As String stDocName = "qryEstoque Consulta" DoCmd.Close DoCmd.OpenForm "qryEstoque Consulta", acFormDS Exit_Comando10_Click: Exit Sub Err_Comando10_Click: MsgBox "VOC CANCELOU A AO, VAMOS RETORNAR AO FORMULRIO GERENTE E CONTINUAR O TRABALHO." DoCmd.OpenForm "GERENTE" Resume Exit_Comando10_Click End Sub

EXIBIR CALCULADORA DO WINDOWS Shell "calc.exe"

BOTAO PARA FECHAR APLICATIVO Private Sub btn_fecharPrograma_Click() 'BOTAO QUE FECHA TODO O PROGRAMA On Error Resume Next If MsgBox("DESEJA ENCERRAR O PROGRAMA ?", vbYesNo, "ATENO") = vbYes Then DoCmd.Quit End If End Sub

COMO DEIXAR TODAS AS LETRAS ESCRITAS NA CAIXA DE TEXTO MAIUSCULAS NA ABA APS ATUALIZAR DIGITE O CODIGO ABAIXO: Me.ActiveControl = UCase(Me.ActiveControl)

COMO FAZER QUE AO TECLAR UMA LETRA NO TECLADO ELA SE TORNE AUTOMATICAMENTE MAIUSCULAS NA CAIXA DE TEXTO OU NA COMBOBOX Private Sub postoGrad_pm_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub

TRABALHANDO ERROS Private Sub Comando5_Click() On Error GoTo Err_Comando5_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frm_consultas" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Comando5_Click: Exit Sub Err_Comando5_Click: MsgBox Err.Description Resume Exit_Comando5_Click

End Sub

SENHA COM CAIXA DE ENTRADA Private Sub btn_sm21_Click() 'botao com implementaao da senha da consulta do sm21 para a p/2 On Error Resume Next If InputBoxEx("POR FAVOR, DIGITE A SENHA", "ACESSO RESTRITO P/2", , , , , , SPassword, Nz(mensagem)) = "prep2" Then MsgBox "USURIO AUTORIZADO", vbInformation, "STATUS" DoCmd.OpenQuery "SM20_GERAL" Else MsgBox "SENHA INVLIDA, ACESSO NEGADO A ESTE USURIO", vbCritical, "ACESSO NEGADO" End If End Sub

DESATIVAR OS AVISOS DO ACCESS Para desabilitar esses avisos de forma que tal procedimento funcione, independente de onde seu banco for aberto, basta inserir o seguinte cdigo VBA: DoCmd.SetWarnings False Simples. Claro, fica a seu critrio onde inserir esse cdigo, se em um mdulo, numa funo, no evento "Ao abrir" de um formulrio, enfim, voc escolhe. Para reabilitar os avisos, basta fazer o seguinte: DoCmd.SetWarnings True

PREENCHIMENTO AUTOMATICO Private Sub cmbClientes_AfterUpdate() Dim Banco As Database, Cliente As Recordset, Sql As String Sql = "SELECT Endereco, Cidade, Estado, Telefone " & _ "FROM tabClientes " & _ "WHERE Nome='" & cmbClientes.Text & "';" Set Banco = CurrentDb Set Cliente = Banco.OpenRecordset(Sql) If Not Cliente.RecordCount = 0 Then txtEndereco = IIf(IsNull(Cliente!endereco), "", Cliente!endereco) txtCidade = IIf(IsNull(Cliente!cidade), "", Cliente!cidade) txtEstado = IIf(IsNull(Cliente!estado), "", Cliente!estado) txtTelefone = IIf(IsNull(Cliente!telefone), "", Cliente!telefone) Else MsgBox "No existem dados para o cliente selecionado.", vbExclamation, "Erro" End If Set Banco = Nothing Set Cliente = Nothing End Sub

REGISTROS DUPLICADOS
Duas coisas uma saber se vc quer saber quem esta duplicado ser for pode fazer uma consulta por ordem alfabetica resolve seu problema, outra pelo q entendi no deixar duplicar algum registro pode ser feito de duas maneiras deixar o campo como chave primaria ou usar o codigo no evento apos atualizar do campo considere o campo com o nome "SeuCampo". Private Sub SeuCampo_BeforeUpdate(Cancel as Integer) If (Not IsNull(DLookup("[SeuCampo]","Suatabela",_"[SeuCampo]'" & Me!SeuCampo&"'"))) Then MsgBox "produto ja cadastrado",_vbInformation,"Seu Programa" Cancel = True ' cancela evento Me!Seucampo.Undo 'desfaz a digitao. end If End Sub

Todas a letras maisculas autor.Text = StrConv(autor.Text, vbUpperCase)

select caixa de combinao SELECT [aux_bairro].[id_bairro], [aux_bairro].[nome_bairro] FROM [aux_bairro]