Ir para conteúdo
Fórum Script Brasil
  • 0

Problema: Visual Basic 6 Sql


spilin182

Pergunta

Boa tarde.

Tenho um banco de dados comunicando com meu aplicativo. Necessito de uma função para apagar os registros inferiores a uma data especificada pelo usuário, porém não consigo de jeito nenhum!

meu código é o seguinte:

Dim Palavra, Palavra2 As String

Dim cnnComando As New adodb.Command

Dim Dados As New Recordset

Dim Valor, Valor2 As Integer

Dim Registro As Variant

Dim word As String

cnnGerenciamento.CursorLocation = adUseClient

Palavra = "SELECT * FROM TrocasProgramadas"

Set Dados = cnnGerenciamento.Execute(Palavra)

Valor = Dados.RecordCount

Palavra2 = "SELECT * FROM TrocasNaoProgramadas"

Set Dados = cnnGerenciamento.Execute(Palavra2)

Valor2 = Dados.RecordCount

word = "DELETE FROM TrocasProgramadas WHERE TO_DATE(DataImporta,'dd-mm-yyyy') = " & _ form1.text1.text & " ;"

With cnnComando

.ActiveConnection = cnnGerenciamento

.CommandType = adCmdText

.CommandText = word

.Execute

End With

A parte em vermelho é a que deveria apagar os dados a partir de tal data.

Ele retorna " A instrução TO_DATE não especificada"

Se alguém souber como resolver agradeço. Valeu

Valeu!!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

cara a secao tutoriais e dicas tem esse nome porque nela é pra se postar tutoriais e dicas e não problemas, beleza??

agora quanto ao seu delete, qual o tipo do campo DataImporta?? se for do tipo datetime, smalldatetime, etc, não precisa converter, é só comparar normalmente:

word = "DELETE FROM TrocasProgramadas WHERE DataImporta = '" & Format(form1.text1.text, "YYYY-MM-DD") & "'"
agora se for varchar, converta tipoa assim:
word = "DELETE FROM TrocasProgramadas WHERE Cast(DataImporta As Date) = '" & Format(form1.text1.text, "YYYY-MM-DD") & "'"

Link para o comentário
Compartilhar em outros sites

  • 0
cara a secao tutoriais e dicas tem esse nome porque nela é pra se postar tutoriais e dicas e não problemas, beleza??

agora quanto ao seu delete, qual o tipo do campo DataImporta?? se for do tipo datetime, smalldatetime, etc, não precisa converter, é só comparar normalmente:

word = "DELETE FROM TrocasProgramadas WHERE DataImporta = '" & Format(form1.text1.text, "YYYY-MM-DD") & "'"
agora se for varchar, converta tipoa assim:
word = "DELETE FROM TrocasProgramadas WHERE Cast(DataImporta As Date) = '" & Format(form1.text1.text, "YYYY-MM-DD") & "'"

Então, eu tentei mudar o campo "DataImporta" para Datetime para ficar mais fácil, porém ele retorna "Operador faltando na expressão "Cast(DataImporta As Date) = '" & Format(form1.text1.text, "YYYY-MM-DD") & "'

Já como VarChar ele funcionou com aquele problema que eu havia mencionado por msg.

Link para o comentário
Compartilhar em outros sites

  • 0

ta, mas o seu campo ta com formato MM-YYYY, não?? ele não tem dia, certo?? como esta o formato no banco??

tipo, adicione o dia antes de converter. tipo, se no banco ta gravado como MM/YYYY, tenta assim:

word = "DELETE FROM TrocasProgramadas WHERE Cast('01/' DataImporta As Date) = '" & Format(CDate("01/" & form1.text1.text), "YYYY-MM-DD") & "'"

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...