MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Validação de campos

    Compartilhe

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Ter 28 Maio 2013, 2:01 pm

    Boa tarde
    Alguém sabe como impedir um campo de ser preenchido de acordo com a informação de outro campo.
    Por Exemplo tenho uma tabela "Production Sheet" e quero que se no campo "Products" se o produto for "Turkey", que no campo
    "Slicers Machine" impedido de preencher.
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de campos

    Mensagem  good guy em Ter 28 Maio 2013, 2:37 pm

    Olá genflydol,

    Crie uma uma condição que invalide tal preenchimento no evento Ao Sair do campo Products de seu formulário.


    If Not IsNull(Products) And Products = "Turkey" Then
    Me.Slicers_Machine.Locked = False
    else
    Me.Slicers_Machine.Locked = True
    End If


    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Condicional

    Mensagem  genflydol em Ter 28 Maio 2013, 8:05 pm

    Obrigado pela ajuda amigo
    Só mais uma pergunta e se quiser que além do "Turkey" outros produtos bloqueiem o campo com ficaria essa expressão?
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de Campos

    Mensagem  good guy em Qua 29 Maio 2013, 12:55 am

    Olá amigo,

    Vai depender de quantas expressões você vai empregar. Se for apenas mais uma expressão fixa:

    If Not IsNull(Products) And Products = "Turkey" Then
    Me.Slicers_Machine.Locked = False
    ElseIf Products = "OutraExpressão" Then
    Me.Slicers_Machine.Locked = False
    else
    Me.Slicers_Machine.Locked = True
    End If



    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Qua 29 Maio 2013, 11:34 am

    Obrigado

    Resolvi esse problema, mas não sei aplicar a formula pro caso da informação ser diferente
    Por exemplo

    If Not IsNull(Product_Description) And Products_Description = "Beef" Then
    Me.Hand_Slicer.Locked = False
    Me.Slicer_1.Locked = False
    ElselfProducts_Description = "Turkey"
    Me.Slicer_1.Locked = False
    Me.Slicer_7.Locked = False
    ElselfProducts_Description = "Turkey"
    Me.Slicer_7.Locked = False
    Me.Slicer_1.Locked = False
    ElselfProducts_Description = "FF Bread Crumb"
    Me.Slicer_1.Locked = False
    Me.Slicer_7.Locked = False
    ElselfProducts_Description = "FF Bread Crumb"
    Me.Slicer_7.Locked = False
    Else
    Me.Slicer_1.Locked = True
    Me.Slicer_7.Locked = True
    End If
    Essa formula faz com que quando preencho o campo (Product_Description),com os nomes listados, bloquei as Slicer 1 e 7
    O que pretendo é bloquear a máquina "Hand Slicer" para um produto especifico "Organic"
    Bloquear "Slicer 1 e 7" para um "Customers" especifico mas associado a um "Product_Description" especifico
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de campos

    Mensagem  good guy em Qua 29 Maio 2013, 1:39 pm

    Olá genflydol,

    Não entendi direito, bloquear a máquina Hand Slicer(?). Por que você está repetindo as condições? Em todo caso, tente assim:

    If Not IsNull(Product_Description) And Products_Description = "Beef" Then
    Me.Hand_Slicer.Locked = False
    Me.Slicer_1.Locked = False
    Elself Products_Description = "Turkey"
    Me.Slicer_1.Locked = False
    Me.Slicer_7.Locked = False
    Elself Products_Description = "Turkey"
    Me.Slicer_7.Locked = False
    Me.Slicer_1.Locked = False
    Elself Products_Description = "FF Bread Crumb"
    Me.Slicer_1.Locked = False
    Me.Slicer_7.Locked = False
    Elself Products_Description = "FF Bread Crumb"
    Me.Slicer_7.Locked = False
    Elself Products_Description = "Organic"
    Me.Slicer_1.Locked = False
    Me.Slicer_7.Locked = False
    ElseIf Produts_Description <> "Turkey" Or Produts_Description <> "FF Bread Crumb" Or Produts_Description <> "Organic" Then
    Me.Slicer_1.Locked = True
    Me.Slicer_7.Locked = True
    Else
    Exit Sub
    End If


    Última edição por good guy em Qua 29 Maio 2013, 9:46 pm, editado 1 vez(es)

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Qua 29 Maio 2013, 8:08 pm

    Amigão Obrigado
    É eu não quero que o campo permita introduzir informação se o produto for "Organic"
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de campos

    Mensagem  good guy em Qua 29 Maio 2013, 8:28 pm

    Olá genlydol,

    O código acima não ajudou?

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Mensagens de alerta

    Mensagem  genflydol em Qui 30 Maio 2013, 9:15 am

    Amigão não, porque as máquinas são muitas e os critérios que meus patrões querem tbm são diversos.
    Talvez tentasse algo mais simples para esse caso.
    Por exemplo quando selecionar um cliente especifico é possível que surja uma mensagem de alerta do gênero " Para esse cliente o produto tal só pode ser fatiado na máquina tal"??????. Assim quem for preencher o formulário já fica a saber que equipamento escolher para um cliente e seu produto especifico.

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Qui 30 Maio 2013, 10:13 am

    Boa tarde companheiro

    Será que será possível resolver o problema com as SeImed, Dlookup.......
    Se que uma delas da pra aplicar o critério e a outra vai buscar o critério em um campo de escolha
    Então pensei que pode ser possível no campos aonde irei selecionar as máquinas de corte colocar um critério e ir buscar esse critério na tabela clientes.
    O que achas??
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de Campos

    Mensagem  good guy em Qui 30 Maio 2013, 9:16 pm

    Com certeza,

    Para sabermos o que você precisa, coloque suas ideias em forma de algoritmos. Isso vai ajudar a desenvolver o programa. Crie uma lista em sequência do que o programa deve fazer para que possamos te ajudar.

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Re: Validação de campos

    Mensagem  genflydol em Sex 31 Maio 2013, 9:10 am

    Bom dia Godd Guy
    Seguinte, possuo um formulário com os seguintes campos "Customers", "Product_Description", "Slicer_1", "Slicer_2 e "Hand Slicer"
    Quero para alguns e somente para meia duzia de customers pois esses a partida são sempre os mesmos, que ao escolher um deles pois eles já aparecem no campo pois possuo um caixa de listagem que apresenta a relação dos mesmos, quero que me apareça um mensagem de alerta ou sugestão do gênero "Para esse fornecedor só se pode cortar na máquina tal" e outra do gênero " Para esse fornecedor se escolhido o produto tal, só se pode cortar na máquina tal".
    Gostaria de criar algo assim pro Campo "Customers" e algo por campo "Products_Description" no segundo caso a mensagem seria "Esse produto só pode ser cortado na máquina tal"

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Mensagens de alerta

    Mensagem  genflydol em Sex 31 Maio 2013, 9:13 am

    Por acaso consegui criar uma macro que lança a mensagem de alerta, isso é fácil, mas a macro lança a mensagem quando introduzo qualquer dado.
    Se conseguisse associar a macro a um nome especifico, como um nome de fornecedor ou a um produto, tendo em conta que não variam são sempre os mesmos
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de campos

    Mensagem  good guy em Sex 31 Maio 2013, 5:39 pm

    Olá genflydol,

    Crie uma tabela de clientes especiais conforme você descreveu e outra tabela com todos os clientes inclusive os clientes especiais. No formulário principal, uma combobox(Customers) cuja origem de dados seja uma consulta a essa última tabela com todos os Clientes cujo critério seja É Negado Nulo para o campo Cliente e CodigoCliente indexado com chave primária.

    Private Sub Customers_BeforeUpdate(Cancel As Integer)
    If Not IsNull(Customers) Then
    If Nz(DLookup(Cliente, "tblClientes")) = Nz(DLookup(Cliente, "tblClientesEspeciais")) Then

    MsgBox "Para esse fornecedor só se pode cortar na máquina tal", vbCritical, "Fábrica"
    MsgBox "Para esse fornecedor se escolhido o produto tal, só se pode cortar na máquina tal", vbInformation, "Fábrica"
    End If
    End If
    End Sub

    Crie uma tabela de produtos especiais conforme você descreveu e outra tabela com todos os produtos inclusive os produtos especiais. No formulário principal, uma combobox(Products_Description) cuja origem de dados seja uma consulta a essa última tabela com todos os Products_Description cujo critério seja É Negado Nulo para o campo Products_Description e CodigoProduto indexado com chave primária.


    Private Sub Product_Description_BeforeUpdate(Cancel As Integer)
    If Not IsNull(Products_Description) Then
    If Nz(DLookup(Products_Description, "tblProdutos")) = Nz(DLookup(Products_Description, "tblProdutosEspeciais")) Then
    MsgBox "Esse produto só pode ser cortado na máquina tal", vbCritical, "Fábrica"
    End If
    End If
    End Sub

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Seg 03 Jun 2013, 10:37 am

    Bom dia amigo.
    Seguinte não consigo identificar qual é o erro
    Aparece-me a sehinte mensagem de erro: Erro em tempo de execução "2428", você nseriu um argumento invalido em uma função de agregação de dominio

    Private Sub Customers_BeforeUpdate(Cancel As Integer)
    If Not IsNull(Customers) Then
    If Nz(DLookup(Southlincs, "Customers")) = Nz(DLookup(Southlincs, "Special Customers")) Then
    MsgBox "Para esse fornecedor só se pode cortar na máquina tal 7", vbCritical, "Hougton Hams"
    MsgBox "Para esse fornecedor, se escolhido MSG, só se pode cortar na Hand Slicer", vbInformation, "Hougton Hams"
    End If
    End If
    End Sub

    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1099
    Registrado : 05/02/2010

    Validação de Campos

    Mensagem  good guy em Seg 03 Jun 2013, 6:34 pm

    Desculpa aí genflydol,

    Na pressa aqui com muitos serviços esqueci de um detalhe importante. Criar e declarar a variável que servirá de critério na expressão com Dlookup.

    Private Sub Customers_BeforeUpdate(Cancel As Integer)
    On Error Resume Next
    Dim nValor As String

    nValor = Customers.Column(0) 'Se for uma combobox ou Customers ser for uma caixa de texto

    If Not IsNull(Customers) Then
    If Nz(DLookup(Southlincs, "Customers","Southlincs= '" & nValor & "'")) = Nz(DLookup(Southlincs, "Special Customers","Southlincs= '" & nValor & "'")) Then
    MsgBox "Para esse fornecedor só se pode cortar na máquina tal 7", vbCritical, "Hougton Hams"
    MsgBox "Para esse fornecedor, se escolhido MSG, só se pode cortar na Hand Slicer", vbInformation, "Hougton Hams"
    Else
    Exit Sub 'Ou outra MsgBox com outra informação
    End If
    End If
    End Sub

    Tenta aí, se não der certo é só falar

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Qua 05 Jun 2013, 8:56 am

    Obrigadão Brother
    Olha, sei que já estou a chatear pra caramba mas já estou quanse no final do projeto, depois se quiser te mando um cópia, afinal sem Ti não seria possivel conclui-lo

    Me ajuda ai a fazer esse comando funcionar Update()Set()= null
    Eu preciso que ao abrir o formulario só dois campos espicficos fiquem em branco para serem repreechidos, ou seja tenho por exemplo 3 campos, "Produtos", "Quantidade Total" e "Número de máquinas", os dois ultimos campos quero que estejam em branco assim que abro o formulario, sei que é com essa fórmula mas não sei onde e nem com devo aplica-la pra funcionar, já tente no construtor de expressões e não deu, com macros também não fui capaz. Já não sei o que estou fazendo mal.

    genflydol
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 33
    Registrado : 22/05/2013

    Validação de campos

    Mensagem  genflydol em Qua 05 Jun 2013, 11:20 am

    Eu não tinha reparado mas hoje fui inserir um produto no fórmulario e o campo está bloqueado deliberadamente sem critério, ou seja, não importa qual o produto que eu coloque o campo fica sempre bloqueado.

    A fórmula que me deste é essa:

    If Not IsNull(Products) And Products = "Turkey" Then
    Me.Slicers_Machine.Locked = False
    ElseIf Products = "OutraExpressão" Then
    Me.Slicers_Machine.Locked = False
    else
    Me.Slicers_Machine.Locked = True
    End If

    Já tentei de tudo pra corrigi-la mas não sou capaz.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9776
    Registrado : 04/11/2009

    Re: Validação de campos

    Mensagem  JPaulo em Qua 05 Jun 2013, 11:27 am

    Fernando, em qual evento VBA do formulario está esse trecho de código ?

    Faça o teste no currente do formulario, com apenas uma condição:


    Private Sub Form_Current()
    If Me.Products = "Turkey" Then
    Me.Slicers_Machine.Locked = False
    Else
    Me.Slicers_Machine.Locked = True
    End If
    End Sub


    Penso que mais facil para si, seria utilizar o Select Case;


    Private Sub Products_AfterUpdate()
    Select Case Me.Products
    Case Is = "Turkey"
    Me.Slicers_Machine.Locked = False
    Case Is = "xpto"
    Me.Slicers_Machine.Locked = False
    Case Is = "yxxx"
    Me.Slicers_Machine.Locked = False
    Case Else
    Me.Slicers_Machine.Locked = True
    End Select
    End Sub




    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sab 24 Fev 2018, 12:33 am