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

Duvidas com select em visual basic 6.0


Moonfall

Pergunta

Bom dia galera! sou novo em visual basic e estou com alguns probleminhas aqui..

seguinte.. estou desenvolvendo um software que faz uma conexcao a um banco de dados em access porem na hora do select estou tendo algumas dificuldades..

segue o select:

Set rs = New ADODB.Recordset

Set con = New ADODB.Connection

'variaveis para teste

Dim ll As String

Dim xx As String

'deixa no formato igual esta no banco de dados a data inserida no campo txt_data

xx = Format(Left(txt_data.Text, 8), "dd/mm/yyyy") & " " & Format(Right(txt_data.Text, 8), "hh:mm:ss")

'efetua o select onde addaulax seria a tabela DIA_HORA o campo e CARRO outro campo

'gostaria que o select comparasse o que esta escrito no txt_data e no combo box com o que tenho na base.

ll = "Select * from addaulax where DIA_HORA = '" & xx & "' And CARRO = " & Cbo.Text & ""

'aqui acontece o erro.

|

v

rs.Open ll, con, adOpenKeyset, adLockOptimistic

'erro obtido: nenhum valor foi fornecido para um ou mais parametros necessarios.

' depois do select caso não achasse algum valor continuaria.

If Not rs.EOF Then

MsgBox "já existe aulas marcadas para essa data e para esse carro", vbInformation, "erro!"

Exit Sub

End If

conteudo dos campos DIA_HORA e CARRO do banco de dados :

CARRO DIA_HORA

Gol 10/8/2008 15:00:00

se alguém poder me ajudar ficaria muito feliz! :}

obrigado!

Editado por Moonfall
Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0

bom.. no comeco estava sem o left como eu estava tendo varios problemas resolvi colocar.

o left seria a parte da data e o right a parte da hora.. pois existe um espaco no meio dos 2

acredito que ele não estava conseguindo comparar a string com o campo DATA dentro do banco de dados pois o formato esta DATA

mas se tiver alguma outra maneira de fazer por favor! :D

Link para o comentário
Compartilhar em outros sites

  • 0

então você não precisa usar o left e sim o convert.. seria +/- assim

primeiro o campo xx seria date depois ele receberia o valor de data.text

Set rs = New ADODB.Recordset
Set con = New ADODB.Connection

'variaveis para teste
Dim ll As String
[b]Dim xx As date[/b]

'deixa no formato igual esta no banco de dados a data inserida no campo txt_data

[b]xx = convert(datetime '" & txt_data.Text &"', 103) "[/b]    ' Esse formato "103" é formato do banco, se tiver duvida como fica coloca para imprimir o valor de xx

'efetua o select onde addaulax seria a tabela DIA_HORA o campo e CARRO outro campo
'gostaria que o select comparasse o que esta escrito no txt_data e no combo box com o que tenho na base.

ll = "Select * from addaulax where DIA_HORA = '" & xx & "' And CARRO = " & Cbo.Text & ""


'aqui acontece o erro.

|
v

rs.Open ll, con, adOpenKeyset, adLockOptimistic

'erro obtido: nenhum valor foi fornecido para um ou mais parametros necessarios.

' depois do select caso não achasse algum valor continuaria.

If Not rs.EOF Then
MsgBox "já existe aulas marcadas para essa data e para esse carro", vbInformation, "erro!"
Exit Sub
End If

Link para o comentário
Compartilhar em outros sites

  • 0

bom ficou assim:

xx = " convert(datetime,'" & txt_data.Text & "', 103)"

ll = "Select * from addaulax where DIA_HORA = " & xx & " And CARRO = " & Cbo.Text & ""

rs.Open ll, con, adOpenKeyset, adLockOptimistic

obtive o erro: 'funcao convert indefinida na expressao'

existe algum erro de sintaxe?

lembrando que o banco esta em ACCESS 2007

já vi isso para SQL

funciona tambem com access?

no immediate:

? xx

convert(datetime,'4/8/2008 15:00:00', 103)

? ll

Select * from addaulax where DIA_HORA = convert(datetime,'4/8/2008 15:00:00', 103) And CARRO = FOX

Editado por Moonfall
Link para o comentário
Compartilhar em outros sites

  • 0

pois é essa função converteria a data para yyyy-mm-dd hh:mm:ss, assim que gravasse no banco, porem vendo seu programa percebi um erro acho que foi meu mesmo... na verdade você não precisa do xx...

ll = "Select * from addaulax where DIA_HORA = convert(datetime,'" & txt_data.Text & "', 103) And CARRO = " & Cbo.Text &""

senão ele passa o parametro como convert, e com isso compara "convert(datatime...", ao invés de comparar apenas a data

Link para o comentário
Compartilhar em outros sites

  • 0

Retirei o xx e coloquei assim:

ll = "Select * from addaulax where DIA_HORA = convert(datetime,'" & txt_data.Text & "', 103) And CARRO = " & Cbo.Text & ""

quando vou dar o open >>

rs.Open ll, con, adOpenKeyset, adLockOptimistic

recebi o erro:

'funcao convert indefinida na expressao'

novamente :/

Editado por Moonfall
Link para o comentário
Compartilhar em outros sites

  • 0
você esqueceu do PLIC

plic?? o q é plic??

bom, não gosto de ficar fechando topicos, porque acho q sempre pode ser aproveitado, tipo alguém com uma duvida relacionada pode usar o mesmo tópico. ou amanha você mesmo chega com outro problema relacionado, e ai seria melhor utilizar o mesmo tópico em vez de criar outro.

bom, mas como esse é um assunto bem especifico e como vocês pediram com educacao to fechando pra variar um poco heheh

se alguém quiser a reabertura me avise por mp.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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