MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]qual o problema do meu IF

    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1461
    Registrado : 23/01/2018

    [Resolvido]qual o problema do meu IF Empty [Resolvido]qual o problema do meu IF

    Mensagem  crysostomo em 14/11/2019, 17:58

    qual é o problema da minha condição?
    Código:
    Private Sub Comando6_Click()
    Dim db      As DAO.Database
    Dim sSQL    As String
    If Me.TxQTDE > Me.txtQuantidadeValidar Then

        MsgBox "Não temos essa quantidade no estoque", vbInformation, "Center - Print"
    Else
    Set db = CurrentDb
    CurrentDb.Execute "update tbEstoque set Quantidade= Quantidade -'" & Me.TxQTDE & "' WHERE [CodigoBarras] = '" & Me.cboCodProduto & "' "

    sSQL = "INSERT INTO paracupom"
        'CAMPOS----------------------------------------
        sSQL = sSQL & "("
        sSQL = sSQL & "  nomeDoProduto"
        sSQL = sSQL & " ,preco"
         sSQL = sSQL & " ,Quntidade"
        sSQL = sSQL & ")"
        'VALORES -------------------------------------
        sSQL = sSQL & " VALUES"
        sSQL = sSQL & "("
        sSQL = sSQL & "  '" & Trim(Me.cboNomeDoProduto) & "'"
        sSQL = sSQL & " ,'" & Trim(Me.total) & "'"
        sSQL = sSQL & " ,'" & Trim(Me.TxQTDE) & "'"
        sSQL = sSQL & ")"
        db.Execute sSQL
       ' Me.txtSubTotal = Reports!relatorioDecupom!preco
    relatoriDecupom.Requery
    Me.cboNomeDoProduto = Null
    Me.TxQTDE = Null
    Me.cboCodProduto = Null
    'Me.total = Null
    'MsgBox "Cadastrado com sucesso", , "Center Print"
    ' "Efetuada com sucesso", vbInformation, "Aviso"
     End If
      End Sub


    Código:
    Private Sub Comando6_Click()
    Dim db      As DAO.Database
    Dim sSQL    As String
      If Me.TxQTDE > Me.listaProduto.Column(3) Then
        MsgBox "Não temos essa quantidade no estoque", vbInformation, "Center - Print"
    Else
    Set db = CurrentDb
    CurrentDb.Execute "update tbEstoque set Quantidade= Quantidade -'" & Me.TxQTDE & "' WHERE [CodigoBarras] = '" & Me.cboCodProduto & "' "


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 05/12/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  caiosouza em 15/11/2019, 22:35

    Boa noite,

    Qual o erro que te retorna?


    .................................................................................
    Caio Souza

    Engenheiro de Software
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2453
    Registrado : 22/11/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  DamascenoJr. em 16/11/2019, 14:14

    O problema é a falta de um Exit Sub


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1461
    Registrado : 23/01/2018

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  crysostomo em 16/11/2019, 16:35

    Não mostra nenhuma problema, mesmo colocando o exit sub ele não cancela a primeira instrução , ele deixa passa e executar a segunda


    Última edição por crysostomo em 16/11/2019, 17:30, editado 1 vez(es)


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2453
    Registrado : 22/11/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  DamascenoJr. em 16/11/2019, 17:30

    Outro detalhe que vi foi essa parte
    Código:
    Quantidade = Quantidade - '" & Me.TxQTDE & "' Where...

    Apenas strings devem ficam entre aspas!

    O motivo de strings/textos ficam entre aspas é porque podem conter espaços e ficando entre aspas forçamos o código a interpretá-las como uma coisa só.

    Código:
    DUAS COISAS

    Código:
    "UMA COISA SÓ"

    Voltando a parte que marquei no seu código. Se o campo TxQTDE tiver o valor 9 então ficaria assim
    Código:
    Quantidade = Quantidade - '9'

    Como subtrair um texto de um campo numérico? Não dá!

    O correto seria
    Código:
    Quantidade = Quantidade - " & Me.TxQTDE & " Where...

    Se continuar não dando certo então anexe seu projeto para uma ajuda certeira.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1461
    Registrado : 23/01/2018

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  crysostomo em 16/11/2019, 17:33

    Ivan ele esta executando normal o cadastro, mas ele não esta fazendo a comparação se o TxQuantidade é maior que txtquantidade validar


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2453
    Registrado : 22/11/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  DamascenoJr. em 16/11/2019, 17:46

    Se não resolver. Só anexando o projeto mesmo. Boa sorte.

    Há várias possibilidades de teste. Tente inserindo o código abaixo para ver se detecta o que pode estar conflitando

    Código:
    ...
    Dim db      As DAO.Database
    Dim sSQL    As String

    if Typename(Me.TxQTDE.value) = Typename(Me.listaProduto.Column(3)) then
    call msgbox("os campos são de tipos iguais")
    else
    call msgbox("os campos são de tipos diferentes")
    end if

    Call msgbox("O valor de Me.TxQTDE é: " & Me.TxQTDE.value & vbnewline & _
    "e seu tipo é: " & Typename(Me.TxQTDE.value) & vbnewline & vbnewline & _
    "O valor de Me.listaProduto.Column(3) é: " & Me.listaProduto.Column(3) & vbnewline & _
    "e seu tipo é: " & Typename(Me.listaProduto.Column(3)))

    If Me.TxQTDE > Me.listaProduto.Column(3) Then
    ...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1461
    Registrado : 23/01/2018

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  crysostomo em 18/11/2019, 13:40

    Bom dia.
    Os campos estão no mesmo formato. O if que não estou entendendo
    Anexos
    [Resolvido]qual o problema do meu IF AttachmentESTOQUE CENTER (1).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (227 Kb) Baixado 7 vez(es)


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2453
    Registrado : 22/11/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  DamascenoJr. em 18/11/2019, 22:26

    Você misturou campos números e texto.

    Altere para
    Código:
    ...
    If Me.TxQTDE > Val(Me.txtQuantidadeValidar) Then
    ...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1461
    Registrado : 23/01/2018

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  crysostomo em 21/11/2019, 16:36

    deu problema , ele não está sendo inserido pelo ssql


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1150
    Registrado : 13/12/2016

    [Resolvido]qual o problema do meu IF Empty Re: [Resolvido]qual o problema do meu IF

    Mensagem  Alexandre Fim em 21/11/2019, 19:15

    Crysostomo,
    Veja se esta rotina te atende.

    Código:


    Private Sub Comando6_Click()
    On Error GoTo trata_erro

    Dim db          As DAO.Database
    Dim sSQL        As String
    Dim vQtdEst    As Long

        'Compara as qtde informada com a qtde disponível
        If Me.TxQTDE > Me.txtQuantidadeValidar Then
            MsgBox "Quantidde solicitada MAIOR que a quantidade disponível em estoque.", vbExclamation, "Center - Print"
            Exit Sub '<== Se a condição não for atendida a rotina é finalizada aqui.
        End If

        'O campo Me.TxQTDE deve aceitar digitação somente NUMEROS
        vQtdEst = CLng(Me.TxQTDE)

        Set db = CurrentDb
       
        'Atualizando quantidade no estoque
        sSQL = "UPDATE tbEstoque SET Quantidade= (Quantidade -" & vQtdEst & ")"
        sSQL = sSQL & " WHERE CodigoBarras = '" & Me.cboCodProduto & "'"
        db.Execute sSQL
       
       
        sSQL = "INSERT INTO paracupom"
        sSQL = sSQL & "("
        sSQL = sSQL & "  nomeDoProduto"
        sSQL = sSQL & " ,preco"
        sSQL = sSQL & " ,Quntidade"
        sSQL = sSQL & ")"
        sSQL = sSQL & " VALUES"
        sSQL = sSQL & "("
        sSQL = sSQL & "  '" & Trim(Me.cboNomeDoProduto) & "'"
        sSQL = sSQL & " ,'" & Trim(Me.total) & "'"
        sSQL = sSQL & " ,'" & Trim(Me.TxQTDE) & "'"
        sSQL = sSQL & ")"
        db.Execute sSQL

        relatoriDecupom.Requery
       
        Me.cboNomeDoProduto = Null
        Me.TxQTDE = Null
        Me.cboCodProduto = Null

        Exit Sub

    trata_erro:
       
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub

    End Sub


    Boa sorte !!!


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

      Data/hora atual: 28/11/2020, 02:24