MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Consulta parâmetro não retorna valores

    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Consulta parâmetro não retorna valores

    Mensagem  Aneju 17/4/2012, 13:13

    Olá, gostaria que quando uma consulta por nome ou cpf ou código de cliente não retornasse nenhum cliente cadastrado, que aparecesse um pop-up ou frm qualquer coisa dizendo: Cliente não cadastrado. Deseja cadastrá-lo? Sim Não. e o sim retornasse para o frm cadastro de cliente.
    Grata
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Marcelo David 17/4/2012, 13:21

    Olá, bem vinda.
    Acredito que a minha resposta no seu outro posto sanaria essa necessidade. Pois buscariamos apenas os valores da tabela e o apresentariamos em um CBO.

    No critério da consulta:

    Forms!NomeFormulárioPesquisa!NomeCboPesquisa

    Na origem da linha da cbo:

    SELEC NomeCliente FROM NomeTabelaCliente


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Consulta parâmetro não retorna valores Marcel11
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 17/4/2012, 14:24

    Marcelo, desculpa, mas eu tou fuçando o access de ousada, eu não sei o q é uma combo, vc poderia clarear um pouco pra mim. grata
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Marcelo David 17/4/2012, 14:45

    Veja:
    Caso não consiga criar uma igual, avise-nos.
    Anexos
    [Resolvido]Consulta parâmetro não retorna valores AttachmentExemploCombo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (25 Kb) Baixado 34 vez(es)


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Consulta parâmetro não retorna valores Marcel11
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 17/4/2012, 14:55

    Hummm, obrigadão. Mas eu preferiria que a consulta me retornasse os valores tal como o kriko respondeu, e caso não encontrasse o cliente na base mostrasse uma janela pop-up, informando q não está cadastrado e dando a opção de cadastrá-lo através de um botão que abrirá o frm cadastro de cliente.
    Meu problema aqui é como fazer com q a consulta retorne esta pop-up e como criá-la. Eu criei um programinha há muuuuiiiiittttooosss anos atrás e fiz esta pop-up, mas hj esqueci quase tudo.

    beijos e muito obrigada
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Marcelo David 17/4/2012, 15:15

    Na forma que passei aqui, basta programar no evanto da cbo "Se não estiver na lista" uma MsgBox indagando sobre o cadastro do ítem no banco.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Consulta parâmetro não retorna valores Marcel11
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 21/4/2012, 17:32

    Marcelo, decidi incluir uma combo no frm exatamente como vc tinha me instruído, entretanto, quando eu digito o nome do cliente que não está cadastrado na base, aparece uma caixa de msg do proprio access informando que: o texto q vc informou não é um item da lista. selecione um item na lista ou digite um texto que coincida com um dos itens listados. OK além de dar uma série de erro se eu não deleto o nome que digitei na caixa combo, então, tenho que deletar manualmente todo o texto incluido na combo.
    Eu queria que ao não encontrar na lista, surgisse uma caixa semelhante informando que: cliente não encontrado na base, e perguntando se deseja cadastrá-lo e automaticamente deletando o que foi escrito na combo.

    Deu pra entender? Grata
    avatar
    Convidad
    Convidado


    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Convidad 21/4/2012, 18:01


    Este código dá opção de cadastrar manual ou automaticamente:
    (usa a função Confirmar() que é uma MsgBox personalizada)

    No evento SeNãoEstiverNaLista da sua ComboBox:
    (substitua os nomes em vermelho pelos dos seus controles)


    Private Sub cboCliente_NotInList(NewData As String, Response As Integer)
    Response = acDataErrContinue
    If Confirmar("Deseja adicionar " & NewData & " automaticamente ao cadastro?") Then
    If CurrentProject.AllForms("for_Clientes").IsLoaded Then DoCmd.Close acForm, "for_Clientes", acSavePrompt

    Dim db As Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tab_Clientes")
    rs.AddNew
    rs!NomeCliente = NewData
    rs!ClienteAtivo = True
    rs!DataCadastro = Date
    rs.Update
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
    Response = acDataErrAdded
    Else
    Me.cboCliente.Undo
    If Not Confirmar("Deseja abrir o cadastro e cadastrar agora?") Then Exit Sub
    If CurrentProject.AllForms("for_Clientes").IsLoaded Then
    If Confirmar("O formulário já está aberto." & vbCrLf & _
    "Deseja alternar para a janela do formulário?") Then Forms!for_Clientes.SetFocus
    Else
    DoCmd.OpenForm "for_Clientes"
    DoCmd.GoToRecord , "", acNewRec
    End If
    End If
    End Sub


    Cole esta função em um módulo global:

    'Faz uma pergunta ao usuário e retorma True se a resposta for SIM, e false se a resposta for NÃO
    Public Function Confirmar(sMensagem As String) As Boolean
    Dim intResp As Integer
    intResp = MsgBox(sMensagem, vbYesNo + vbQuestion, "Confirmação")
    If intResp = vbYes Then
    Confirmar = True
    Else
    Confirmar = False
    End If
    End Function



    Última edição por Norberto Rost em 21/4/2012, 19:24, editado 1 vez(es)
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 21/4/2012, 19:11

    Me perdoe Norberto, mas sou apenas ousada, não tenho tantos conhecimentos de códigos, etc. Mas, tou tentando. rsrss Tentei fazer como vc me disse,mas acho q fiz errado. Eu colei oos dois num módulo global que já existe. É pra fazer isto? por favor, diga como se vc estivesse falando com uma pessoa bem burra.
    Esse é o código que eu modulo que tenho:

    Option Compare Database


    Private Sub bt_altera_dados_Click()

    If MsgBox(" Deseja alterar algo nesse cliente ?", vbYesNo + vbDefaultButton1 + vbInformation, "teste de mensagem") = vbYes Then
    Me.Section(0).BackColor = 11389934 ' muda a cor do corpo do formulario
    Me.CabeçalhoDoFormulário.BackColor = 11389934 ' muda a cor do cabeçalho
    ' os comando abaixo libera todos os campos para edição
    CodigoCliente.Enabled = True
    Nome.Enabled = True
    CPF.Enabled = True
    FoneResidencial.Enabled = True
    FoneComercial.Enabled = True
    Celular.Enabled = True
    Email.Enabled = True
    Endereco.Enabled = True
    PontoReferencia.Enabled = True
    Observacao.Enabled = True
    Else ' caso o usuario cancele, surge a mensagem
    MsgBox " Operação cancelada pelo usuário", vbInformation, " Operação cancelada "
    End If
    DoCmd.RunCommand acCmdRefresh ' caso ocorra alteração de dados, atualiza a tabela e o formulario
    End Sub

    Private Sub bt_excluir_Click()
    'Tratamento de erro
    On Error GoTo Err_Delete

    Dim rs As Recordset, numRecord As Integer
    numRecord = InputBox("Informe o código do Cliente:", "Excluir Cliente")
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TblCliente WHERE CodigoCliente=" & numRecord & "")

    If MsgBox("Confira dos dados do cliente " & numRecord & " abaixo: Deseja exclui-lo mesmo assim?" & vbCrLf & vbCrLf & "Nome: " & rs!Nome & vbCrLf & "CPF: " & rs!CPF & vbCrLf & "Nome da Mãe: " & rs!NomeMae, vbQuestion + vbYesNo, "Confirmação dos dados do cliente") = vbYes Then

    rs.Delete

    MsgBox "Operação realizada com sucesso!", vbInformation, "Confirmação da exclusão"

    Else
    MsgBox " Ação cancelada pelo usuário", vbInformation, " Operação cancelada"

    Exit Sub

    End If

    rs.Close
    Set rs = Nothing

    DoCmd.GoToRecord , , acNewRec

    Exit_Delete:
    Exit Sub

    Err_Delete:
    MsgBox "Erro número: " & Err.Number & vbLf & vbLf & Err.Description, vbCritical, "Mensagem"

    Resume Exit_Delete
    End Sub
    Private Sub bt_novo_cadastro_Click()
    ' ao apertar o botão aparece a seguinte mensagem
    If MsgBox(" Deseja cadastrar um novo cliente ?", vbYesNo + vbDefaultButton1 + vbInformation, "Mensagem") = vbYes Then
    DoCmd.GoToRecord , , acNewRec ' quando clica no ok, abre para inserir o registro.
    Me.Section(0).BackColor = 11389934 ' muda a cor do corpo do formulario
    Me.CabeçalhoDoFormulário.BackColor = 11389934 ' muda a cor do cabeçalho
    ' as linhas abaixo liberam os campos para a inserção de dados
    Nome.Enabled = True
    CPF.Enabled = True
    FoneResidencial.Enabled = True
    FoneComercial.Enabled = True
    Celular.Enabled = True
    Email.Enabled = True
    Endereco.Enabled = True
    PontoReferencia.Enabled = True
    Observacao.Enabled = True
    Else
    MsgBox " Ação cancelada, registro não cadastrado.", vbInformation, "Operação Cancelada"
    End If
    End Sub

    Private Sub bt_salvar_Click()
    If MsgBox(" Deseja salvar esse cadastro ?", vbYesNo + vbDefaultButton1 + vbInformation, "Salvar") = vbYes Then
    DoCmd.Save ' salva o registro
    DoCmd.RunCommand acCmdRefresh ' atualiza a tabela e o formulario
    MsgBox " Cadastro salvo com sucesso!", vbOKOnly, "Cadastro Salvo"

    'ao apertar ok, trava os campos abaixo
    CodigoCliente.Enabled = False
    Nome.Enabled = False
    CPF.Enabled = False
    FoneResidencial.Enabled = False
    FoneComercial.Enabled = False
    Celular.Enabled = False
    Email.Enabled = False
    Endereco.Enabled = False
    PontoReferencia.Enabled = False
    Observacao.Enabled = False
    Me.Section(0).BackColor = 12180223 ' muda a cor do corpo do formulario
    Me.CabeçalhoDoFormulário.BackColor = 12180223 ' muda a cor do cabeçalho

    Else ' se o usuario cancelar a operação, surge essa mensagem
    MsgBox " Ação cancelada pelo usuário, registro não foi salvo", vbInformation, " Operação Cancelada"

    End If
    End Sub

    Private Sub cbocliente_AfterUpdate()
    DoCmd.ApplyFilter , "CodigoCliente = " & Me!cbocliente.Column(0) ' Codigocliente chave primaria, cbocliente, onde vai buscar o nome desejado

    Me!cbocliente = Null 'deixa a combo vazia, limpa.


    End Sub



    Private Sub Form_Load()
    Me.Section(0).BackColor = 12180223 ' muda a cor do corpo do formulario
    Me.CabeçalhoDoFormulário.BackColor = 12180223 ' muda a cor do cabeçalho
    DoCmd.GoToRecord , , acNewRec ' esse comando, inicia com um novo registro, deixando o formulario em branco
    ' os camandos abaixo trava os campos
    CodigoCliente.Enabled = False
    Nome.Enabled = False
    CPF.Enabled = False
    FoneResidencial.Enabled = False
    FoneComercial.Enabled = False
    Celular.Enabled = False
    Email.Enabled = False
    Endereco.Enabled = False
    PontoReferencia.Enabled = False
    Observacao.Enabled = False
    End Sub

    Private Sub Form_Timer()
    Me.TimerInterval = 500
    Me.Refresh
    End Sub

    Private Sub Nome_Dirty(Cancel As Integer)
    CPF.Enabled = True ' ao preencher o nome...libera o campo endereço

    End Sub

    Private Sub CPF_Dirty(Cancel As Integer)
    FoneResidencial.Enabled = True ' ao preencher o campo numero...libera o campo bairro
    End Sub

    Private Sub FoneResidencial_Dirty(Cancel As Integer)
    FoneComercial.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado
    End Sub

    Private Sub FoneComercial_Dirty(Cancel As Integer)
    Celular.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado
    End Sub

    Private Sub Celular_Dirty(Cancel As Integer)
    Email.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado
    End Sub

    Private Sub Email_Dirty(Cancel As Integer)
    Endereco.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado
    End Sub

    Private Sub Endereco_Dirty(Cancel As Integer)
    PontoReferencia.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado
    End Sub

    Private Sub PontoReferencia_Dirty(Cancel As Integer)
    Observacao.Enabled = True ' ao preencher o campo cidade...o campo estado fica liberado

    End Sub


    grata
    avatar
    Convidad
    Convidado


    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Convidad 21/4/2012, 19:56


    Editei minha mensagem para ficar mais claro.

    Só a função Confirmar fica no módulo global. Se não quiser usar, pode substituir por MsgBox.
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 21/4/2012, 20:48

    Continua dando o mesmo erro. Aparece a janela perguntando Deseja adicionar Maria automaticamente? quando eu clico em sim, aparece a mesma janela e depois esta mensagem: Erro em tempo de execução '2501'. A ação close foi cancelada. Fim , depurar, ajuda.
    Aneju
    Aneju
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 55
    Registrado : 17/04/2012

    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Aneju 22/4/2012, 17:50

    Obrigada, o problema central deste topico foi resolvido. sendo assim, vou abrir um novo com a dúvida que ficou. grata. beijos
    avatar
    Convidad
    Convidado


    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Convidad 22/4/2012, 19:58


    Ok, o Fórum agradece o retorno.

    Conteúdo patrocinado


    [Resolvido]Consulta parâmetro não retorna valores Empty Re: [Resolvido]Consulta parâmetro não retorna valores

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 00:16