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

    [Resolvido]excluir com condição de campo data e hora

    Compartilhe
    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Dom 06 Dez 2015, 14:11

    Olá a todos do fórum.
    Estou tentando excluir dados de uma tabela baseado em condições de data e hora executando o código abaixo:

    Código:
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE CPCODIGO=""" & Me.cpCodProduto & """ and CPDTSAIDA=#" & Me.cpdata & "# and CPHRSAIDA = #" & Me.cphora & "#;"
    onde:
    CPCODIGO = tipo número
    CPDTSAIDA= tipo data/hora
    CPHRSAIDA= tipo data/hora

    Não está dando erro mais não está funcionando.

    Alguém enxerga o problema?

    Obrigado desde já.
    avatar
    formiga10x
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 746
    Registrado : 11/09/2013

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  formiga10x em Dom 06 Dez 2015, 17:40

    "delete " Oque? "FROM


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  Avelino Sampaio em Dom 06 Dez 2015, 18:42

    Olá!

    Experimente:

    Dim strFiltro$
    strFiltro = "CPCODIGO=""" & Me.cpCodProduto & """ and CPDTSAIDA=#" & format(Me.cpdata,"mm/dd/yyyy") & "# and CPHRSAIDA = #" & format(Me.cphora,"mm/dd/yyyy") & "#;"
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE " & strFiltro


    Nota: backup antes dos testes.

    Aguardamos
    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Seg 07 Dez 2015, 10:16

    Obrigado aos colegas.

    Não funcionou mestre Avelino.

    Chamei o código como função, assim:
    Código:
    Private Sub cmdEXCLUIR_Click()
    If IsNull(Me.cpcodigo) Then
    MsgBox "Escolha um item a ser excluído", vbOKOnly, "Excluir item..."
    Exit Sub
    End If
    If MsgBox("Excluir o item " & Me.cpPesquisa & " ?", vbQuestion + vbYesNo, "Excluir item ...") = vbYes Then

    Call excluir

    Me.ListaCliente.Requery
    Call AplicarCalculos
    Else
    Exit Sub
    End If
    End Sub

    Chamando a função:
    Código:
    Public Function excluirSaidaProduto2()
    Dim strFiltro$
    strFiltro = "CPCODIGO=""" & Me.cpCodProduto & """ and CPDTSAIDA=#" & Format(Me.cpdata, "mm/dd/yyyy") & "# and CPHRSAIDA = #" & Format(Me.cphora, "mm/dd/yyyy") & "#;"
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE " & strFiltro
    End Function

    E chamei o código direto, assim:
    Código:
    Private Sub cmdEXCLUIR_Click()
    If IsNull(Me.cpcodigo) Then
    MsgBox "Escolha um item a ser excluído", vbOKOnly, "Excluir item..."
    Exit Sub
    End If
    If MsgBox("Excluir o item " & Me.cpPesquisa & " ?", vbQuestion + vbYesNo, "Excluir item ...") = vbYes Then

    Dim strFiltro$
    strFiltro = "CPCODIGO=""" & Me.cpCodProduto & """ and CPDTSAIDA=#" & Format(Me.cpdata, "mm/dd/yyyy") & "# and CPHRSAIDA = #" & Format(Me.cphora, "mm/dd/yyyy") & "#"
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE " & strFiltro

    Me.ListaCliente.Requery
    Call AplicarCalculos
    Else
    Exit Sub
    End If
    End Sub

    Formiga 10x, tentei também o "Delete * FROM ....". não funcionou.
    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Seg 07 Dez 2015, 10:20

    Só observando que apesar do nome da função, excluir e excluirProdutoSaida2, estarem diferente, no código os nomes estão iguais, excluir.
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  Avelino Sampaio em Seg 07 Dez 2015, 10:36

    Desculpa, não prestei atenção que Me.cpCodProduto é número. Tire as aspas

    strFiltro = "CPCODIGO=" & Me.cpCodProduto & " and CPDTSAIDA=#" & format(Me.cpdata,"mm/dd/yyyy") & "# and CPHRSAIDA = #" & format(Me.cphora,"mm/dd/yyyy") & "#;"

    Aguardamos
    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Seg 07 Dez 2015, 11:16

    Bom dia mestre Avelino e obrigado pela atenção.

    Não funcionou.

    O tipo de dados dos campos são aqueles que citei no primeiro post.

    Quando executo o delete assim:

    Código:
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE CPCODIGO =" Me.cpCodProduto

    Funciona perfeitamente.

    É como se o critério de data e hora estivessem errados?!

    O que será?

    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  Avelino Sampaio em Seg 07 Dez 2015, 14:34

    Mais uma vez papei mosca.  O seu último campo é hora e coloquei como formato de data.

    Experimente só com a data e veja se funciona. Se funcionar acrescentaremos a hora

    strFiltro = "CPCODIGO=" & Me.cpCodProduto & " and CPDTSAIDA=#" & format(Me.cpdata,"mm/dd/yyyy") & "#;"

    Aguardamos
    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Seg 07 Dez 2015, 17:09

    Funcionou perfeitamente mestre Avelino. Mas necessito da condição Hora também.
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  Avelino Sampaio em Seg 07 Dez 2015, 19:55

    Experimente:

    strFiltro = "CPCODIGO=" & Me.cpCodProduto & " and CPDTSAIDA=#" & format(Me.cpdata,"mm/dd/yyyy") & "# and CPHRSAIDA = #" & format(Me.cphora,"hh:mm:ss") & "#;"

    Aguardamos

    avatar
    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: [Resolvido]excluir com condição de campo data e hora

    Mensagem  mathusalmeida em Ter 08 Dez 2015, 11:11

    Funcionou na perfeição grande mestre Avelino.

    Agora compartilhe um puco mais dos seus conhecimento me dizendo o seguinte:

    O mestre passou toda a condição da SQL em uma variável e depois chamou ela. Ok?!

    Se é isso mesmo, quais as vantagens de se trabalhar assim em relação a isso:
    Código:
    CurrentDb.Execute "delete FROM TBSAIDAPRODUTO WHERE CPCODIGOMOVIMENTO=" & Me.cpcodigo & " CPDTSAIDA=#" & Me.cpdata & "# and CPHRSAIDA = #" & Me.cphora & "#;"

    Se o mestre puder enriquecer nosso aprendizado, agradeço ainda mais.

    Sucesso grande mestre.

      Data/hora atual: Sab 24 Jun 2017, 14:49