Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cleiton Alves

[Resolvido] Problema em instrução SQL - consulta

Recommended Posts

Olá a todos... sou novato em vb... estou tentando fazer uma consulta com intervalo de datas com o código abaixo (que não está completo ainda) e está dando um erro na linha em negrito. É o erro run timer erro '3001'.... Alguém poderia me ajudar por favor...?

 

data_ini = Format(CDate(txt_venc_inicial.Text), "DD/MM/YYYY")

data_fin = Format(CDate(txt_venc_final.Text), "DD/MM/YYYY")

 

conecta

sel = "Select * from despesas where vencimento>='" & data_ini & "' and vencimento<='" & data_fin & "'"

rs.Open sel, 3, 3

 

desconecta

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas!

cleiton eu acho k te consigo ajudar

 

se a base de dados for em access, faz o seguinte:

 

sel = "Select * from despesas where vencimento Between #" & data_ini & "# AND #" & data_fin & "#"

 

se a base de dados for outra ou caso isso não resulte posta novamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o código desse conecta e do desconecta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos... sou novato em vb... estou tentando fazer uma consulta com intervalo de datas com o código abaixo (que não está completo ainda) e está dando um erro na linha em negrito. É o erro run timer erro '3001'.... Alguém poderia me ajudar por favor...?

 

data_ini = Format(CDate(txt_venc_inicial.Text), "DD/MM/YYYY")

data_fin = Format(CDate(txt_venc_final.Text), "DD/MM/YYYY")

 

conecta

sel = "Select * from despesas where vencimento>='" & data_ini & "' and vencimento<='" & data_fin & "'"

rs.Open sel, 3, 3

 

desconecta

 

Obrigado

 

Quando abre um recordset, você precisa passar para ele quatro parâmetros, e você só está passando três.

 

São eles:

 

rs.open "string de consulta", variavel de conexão (que é o que está faltando para você), modo de abertura, tipo de chave

 

No seu caso, se sua variável de conexão chamar-se cn, sua linha de código deve ficar:

 

rs.open sel, cn, 3, 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, obrigado...

Primeiro erro era o do Between que não conhecia e o segundo eu tinha esquecido memso o cn (rs.Open sel, cn, 3, 3)... agora funcionou...

Muito obrigado a todos... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

Ficou assim o código agora...

 

data_ini = Format(CDate(txt_venc_inicial.Text), "DD/MM/YYYY")

data_fin = Format(CDate(txt_venc_final.Text), "DD/MM/YYYY")

 

conecta

sel = "Select * from despesas where vencimento Between #" & data_ini & "# and #" & data_fin & "#"

rs.Open sel, cn, 3, 3

 

desconecta

 

 

Vou tentar concluir o resto... qualquer coisa eu posto de novo... rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gente, estou com um problema para excluir um registro do meu banco de dados (Access). Aí embaixo estão os códigos dos botões incluir e excluir e no banco de dados eu coloquei o campo vencimento como Data/Hora... que foi a única forma que consegui para conseguir fazer uma pesquisa com os relatórios no meu programa.

 

O erro que dá quanto tento excluir é: Run-time error '-2147217913 (800400e07)' Tipo de dados incompatível na expressão de critério,

e aponta para a linha

rs.Open sel, cn, 3, 3 do botão excluir...

 

Se eu mudar no banco de dados o campo vencimento para texto... dá certo, mas aí não consigo tirar o relatório pelo intervalo de datas...

 

Quem puder me ajudar por favor... só falta isso para o meu programa...

Obrigado a todos...

 

------------------------------------------------------------------------------------------------------------------------------------------

Botão Incluir:

Private Sub cmd_incluir_apagar_Click()

If cbo_fornecedor_apagar.Text = "" Then

MsgBox "Escolha um fornecedor!", vbOKOnly, "Atenção"

cbo_fornecedor_apagar.SetFocus

Exit Sub

ElseIf cbo_referentea_apagar.Text = "" Then

MsgBox "Escolha ao que se refere!", vbOKOnly, "Atenção"

cbo_referentea_apagar.SetFocus

Exit Sub

ElseIf msk_vencimento_apagar.Text = "__/__/____" Then

MsgBox "Escolha a data de vencimento", vbOKOnly, "Atenção"

msk_vencimento_apagar.SetFocus

Exit Sub

ElseIf txt_valor_apagar.Text = "" Then

MsgBox "Preencha o campo valor", vbOKOnly, "Atenção"

txt_valor_apagar.SetFocus

Exit Sub

End If

 

conecta

 

sel = "Select * from contasapagar where fornecedor='" & cbo_fornecedor_apagar & "' and referente='" & cbo_referentea_apagar & "' and descricao='" & txt_descricao_apagar & "' and vencimento='" & CDate(msk_vencimento_apagar) & "' and valor='" & txt_valor_apagar & "'"

rs.Open sel, cn, 3, 3

 

If Not (rs.RecordCount = 0) Then

MsgBox "Registros já cadastrados", vbExclamation, "Atenção"

Exit Sub

End If

 

rs.AddNew ' adiciona uma nova linha ao registro

rs("fornecedor") = cbo_fornecedor_apagar

rs("referente") = cbo_referentea_apagar

rs("descricao") = Trim(txt_descricao_apagar)

rs("vencimento") = CDate(msk_vencimento_apagar)

rs("valor") = Trim(txt_valor_apagar)

rs.Update 'atualiza a linha (grava os dados)

 

MsgBox "Registro gravado com sucesso!", vbInformation, "Contas a pagar"

 

desconecta

 

Unload Me

Me.Show (vbModal)

 

End Sub

 

-------------------------------------------------------------------------------------------------------------------------------------------

 

Botão Excluir:

Private Sub cmd_excluir_apagar_Click()

conecta

 

sel = "Select * from contasapagar where fornecedor='" & cbo_fornecedor_apagar & "' and referente='" & cbo_referentea_apagar & "' and descricao='" & txt_descricao_apagar & "' and vencimento='" & CDate(msk_vencimento_apagar) & "' and valor='" & txt_valor_apagar & "'"

rs.Open sel, cn, 3, 3

 

If Not (rs.RecordCount = 0) Then

rs.Delete

End If

 

MsgBox "Registro excluído com sucesso!", vbInformation, "Contas a pagar"

 

desconecta

 

Unload Me

Me.Show (vbModal)

 

 

cmd_excluir_apagar.Enabled = False

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Select * from contasapagar where fornecedor='" & cbo_fornecedor_apagar & "' and referente='" & cbo_referentea_apagar & "' and descricao='" & txt_descricao_apagar & "' and vencimento='" & CDate(msk_vencimento_apagar) & "' and valor='" & txt_valor_apagar & "'"

 

Não há necessidade de converter para data a data :), você ta concatenando ela com uma string.

 

Tire as aspas da data. Pode ser que seja o formato da data também MM-DD-YY.

 

No botão excluir, por que você não usa DELETE em vez de SELECT e depois delete ?

DELETE FROM TABELA WHERE blablabla=1

 

Flw

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Select * from contasapagar where fornecedor='" & cbo_fornecedor_apagar & "' and referente='" & cbo_referentea_apagar & "' and descricao='" & txt_descricao_apagar & "' and vencimento='" & CDate(msk_vencimento_apagar) & "' and valor='" & txt_valor_apagar & "'"

 

Não há necessidade de converter para data a data :), você ta concatenando ela com uma string.

 

Tire as aspas da data. Pode ser que seja o formato da data também MM-DD-YY.

 

No botão excluir, por que você não usa DELETE em vez de SELECT e depois delete ?

DELETE FROM TABELA WHERE blablabla=1

 

Flw

 

Abraços!

 

Legal, gostei...esse comando "Delete", nessa instrução, eu não conhecia... vou tentar estudar bem SQL pra fazer perguntas mais interessantes nas próximas vezes...

Obrigado a todos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.