Jump to content
Fórum Script Brasil
  • 0

Problema: Visual Basic 6 Sql


spilin182

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...