none
sql não deleta o banco RRS feed

  • Pergunta

  • Senhores , boa tarde.

    Poderiam me ajudar, comando sql não funciona, quando tiro a data2 realacionado ao campo data no banco funciona normal

    más quando coloco o campo data2 no sql ele não funciona.

    Informações: o banco é access, o campo data2 está como data, o codigo é vb.

     

    Dim SQl As String
    Dim pathBD As String

    pathBD = "G:\Gerais Manufatura\SMED\atual\final_de_linha.mdb"

     

    maq = MSFlexGrid1.TextMatrix(1, 2)
    dat = MSFlexGrid1.TextMatrix(1, 3)
    hor = MSFlexGrid1.TextMatrix(1, 5)

    dat = Format(dat, "dd/mm/yyyy") 'calendar1.Value

     

    Set db = OpenDatabase(pathBD)
    SQl = "DELETE * FROM prod_modelos WHERE maquina1 = '" & maq & "' and data2 = #" & dat & "#  and hora3 = '" & hor & "'"
    db.Execute SQl
    db.Close


    Laercio Tersi

    sábado, 12 de janeiro de 2013 09:48

Respostas


  • Set db = OpenDatabase(pathBD)
    'esse funciona para o campo ora
    'SQl = "DELETE * FROM prod_hora WHERE hora5 like '" & hora.text & "'"

    'esse não funcionava
     SQl = "DELETE * FROM prod_hora WHERE data3 like '" & dataini.text & "'"

    porem coloquei ess linha antes:

    dataini.text = Format(dataini.text, "d/m/yyyy")  'calendar1.Value

    dai esse funcionou:

     SQl = "DELETE * FROM prod_hora WHERE data3 like '" & dataini.text & "'"

    o problema e que quando eu abro o banco access a data está em dd/mm/yyyy

    más para o codigo funcionar teve que formatar a variavel para d/m/yyyy.

    VALEU GALERA UM GRANDE ABRAÇO A TODOS.

    LAERCIO TERSI


    Laercio Tersi


    • Editado Tersi quarta-feira, 16 de janeiro de 2013 10:01 melhorar
    • Marcado como Resposta Tersi quarta-feira, 16 de janeiro de 2013 11:39
    terça-feira, 15 de janeiro de 2013 18:21

Todas as Respostas

  • Qual é a mensagemde erro que vc recebe?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    segunda-feira, 14 de janeiro de 2013 15:33
    Moderador
  • Willian, primeiramente obrigado

    ja consegui fazer funcionar quando o é para deletar um campo com string

    o que está dando proble é quando preciso deletar um capo referente a uma data usando um campo do programa:

    Esse funciona

    SQl = "DELETE * FROM prod_modelos WHERE data2 like #14/01/2013#"

    Esse não funciona

    SQl = "DELETE * FROM prod_modelos WHERE data2 like #" & data.text & "#"

    Esse não funciona

    SQl = "DELETE * FROM prod_modelos WHERE data2 like #01/01/2013#"


    Laercio Tersi


    • Editado Tersi segunda-feira, 14 de janeiro de 2013 17:48 habilitar resposta
    segunda-feira, 14 de janeiro de 2013 17:48
  • Quando vc diz "nao funciona" vc quer dizer erro ou  simplesmente nao deleta o resgitro?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    segunda-feira, 14 de janeiro de 2013 20:34
    Moderador
  • Não deleta o registro.

    Laercio Tersi

    terça-feira, 15 de janeiro de 2013 09:13
  • Tente isto:

    Sql = "DELETE * FROM prod_modelos WHERE data2 like '%" & Data.text & '%"

    ou isto:

    Sql = "DELETE * FROM prod_modelos WHERE data2 like '%" & Data.text & "%'

    terça-feira, 15 de janeiro de 2013 11:01
  • Tente isto:

    Sql = "DELETE * FROM prod_modelos WHERE data2 like '%" & Data.text & '%"

     esse da erro no codigo

    ou isto:

    Sql = "DELETE * FROM prod_modelos WHERE data2 like '%" & Data.text & "%

    esse não da erro más não deleta.


    Laercio Tersi

    terça-feira, 15 de janeiro de 2013 13:38
  • esse para hora funciona,

    SQl = "DELETE * FROM prod_hora WHERE hora5 like '" & hora.text & "'"

    esse que é igual para o campo dataini.text não deleta.

    SQl = "DELETE * FROM prod_hora WHERE data3 like '" & dataini.text & "'"


    Não deleta, não da erro

    SQl = "DELETE * FROM prod_hora WHERE data3 like '#" & dataini.text & "#'"

    Não deleta, não da erro

    SQl = "DELETE * FROM prod_hora WHERE data3 like '%" & dataini.text & "%'"

    Não deleta, não da erro

    SQl = "DELETE * FROM prod_hora WHERE data3 like '*" & dataini.text & "*'"

    não deleta, não da erro

    SQl = "DELETE * FROM prod_hora WHERE data3 like '@" & dataini.text & "@'"


    o campo data3 do banco access está como dd/mm/aaaa preciso do like caso alguem coloque um espaço na frente ou dois.
    • Editado Tersi terça-feira, 15 de janeiro de 2013 14:05 ajuste
    terça-feira, 15 de janeiro de 2013 13:54
  • Cara, ja percebeu que o problema não é no Delete? e sim no parametro que chega nele? ele pode estar vindo vazio, está debugando?

    Coloca o breakPoint em cima da linha :

    Sql = "DELETE * FROM prod_modelos WHERE data2 like '%" & Data.text & '%"

    e executa, quando para ponha a seta em cima da Data.Text e veja se tem valor ou está null.

    Se estiver null , verifique o parametrô..

    Olhe um método bem simples que eu uso para deletar:

            Public Sub Deletar(ByVal obj As CADASTRO)
                Dim sql As String
    
                sql = "DELETE FROM LIVRO WHERE IDT_LIVRO = @IDT_LIVRO"
                Using connection As New SqlConnection(ConnectionStringSql)
                    Dim cmd As New SqlCommand(sql, connection)
                    cmd.Parameters.AddWithValue("@IDT_LIVRO", obj.idt_livro)
                    cmd.Connection.Open()
                    cmd.ExecuteNonQuery()
                End Using
            End Sub

    terça-feira, 15 de janeiro de 2013 14:11
  • Tém valor no campo dataini.text no formato dd/mm/aaaa.

    estou usando vb6.


    Laercio Tersi

    • Sugerido como Resposta Vanderney Souza quarta-feira, 16 de janeiro de 2013 10:39
    terça-feira, 15 de janeiro de 2013 14:15

  • Set db = OpenDatabase(pathBD)
    'esse funciona para o campo ora
    'SQl = "DELETE * FROM prod_hora WHERE hora5 like '" & hora.text & "'"

    'esse não funcionava
     SQl = "DELETE * FROM prod_hora WHERE data3 like '" & dataini.text & "'"

    porem coloquei ess linha antes:

    dataini.text = Format(dataini.text, "d/m/yyyy")  'calendar1.Value

    dai esse funcionou:

     SQl = "DELETE * FROM prod_hora WHERE data3 like '" & dataini.text & "'"

    o problema e que quando eu abro o banco access a data está em dd/mm/yyyy

    más para o codigo funcionar teve que formatar a variavel para d/m/yyyy.

    VALEU GALERA UM GRANDE ABRAÇO A TODOS.

    LAERCIO TERSI


    Laercio Tersi


    • Editado Tersi quarta-feira, 16 de janeiro de 2013 10:01 melhorar
    • Marcado como Resposta Tersi quarta-feira, 16 de janeiro de 2013 11:39
    terça-feira, 15 de janeiro de 2013 18:21