SELECT EM CAMPO DATA NO VB 6

CYBERMAC 13/07/2015 15:04:05
#448766
Pessoal,

Boa tarde!

Ao fazer o select abaixo, a seguinte mensagem de erro ocorre: Syntax Error in string query expression.

Preciso fazer um select em uma tabela onde guardo os lançamentos do caixa, portanto, a data sempre vem atribuida com a data do sistema.

Uso banco Access e conforme dito, segue o código:

Private Sub txtvalor_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then
If txtvalor > msaldo Then
MsgBox [Ô]Você não pode fazer este lançamento. Saldo insuficiente.[Ô], vbCritical, [Ô]Confirmação[Ô]
txtvalor.SetFocus
Exit Sub
Else
If MsgBox([Ô]Confirma o lançamento?[Ô], vbQuestion + vbYesNo, [Ô]Confirmação[Ô]) = vbYes Then
TLancDesp.Index = [Ô]IdxLancDesp[Ô]
TLancDesp.Seek [Ô]=[Ô], txtlancamento, txtconta, txtdata

If TLancDesp.NoMatch Then
TLancDesp.AddNew
TLancDesp([Ô]IdLancDesp[Ô]) = TLancDesp.RecordCount + 1
TLancDesp([Ô]idlancamento[Ô]) = Val(txtlancamento)
TLancDesp([Ô]IdConta[Ô]) = Val(txtconta)
TLancDesp([Ô]descricao[Ô]) = Left(Label12, 20)
TLancDesp([Ô]IdEmpresa[Ô]) = txtempresa
TLancDesp([Ô]data[Ô]) = txtdata
TLancDesp([Ô]valor[Ô]) = txtvalor
TLancDesp.Update
TLancDesp.Refresh
Else
MsgBox [Ô]Já existe um lançamento nesta conta com a mesma data.[Ô], vbCritical, [Ô]Confirmação[Ô]
txtconta.SetFocus
Exit Sub
End If
Else
Exit Sub
End If
End If
msaldo = msaldo - txtvalor
txtsaldoatual = Format(msaldo, [Ô]#0.00[Ô])
txtconta = [Ô][Ô]
txtvalor = [Ô][Ô]
Label12 = [Ô][Ô]
btnverlanc_Click
txtconta.SetFocus
End If
End Sub

Private Sub btnverlanc_Click()
[ô]mostra lançamentos efetuados

sqllancamento = [Ô]SELECT * FROM LANCAMENTODESP WHERE IDEMPRESA LIKE [ô][Ô] & txtempresa & [Ô][ô] AND DATA >= #[Ô] & Format(txtdata, [Ô]yyyy/mm/dd[Ô]) & [Ô]#[ô][Ô] [ô]AND DATA #[Ô] & txtdata & [Ô]#[ô][Ô]
datadesp.RecordSource = sqllancamento
datadesp.Refresh
End Sub

O resultado desta pesquisa, aparece em uma grid. Anexo segue projeto completo caso precisem.

Obrigado a todos.


ALVAROVB2009 13/07/2015 16:12:23
#448772
Resposta escolhida
o Access é Mes - Dia - Ano

Segue um exemplo
where datalancamento >= #[Ô] & Format(MskDataInicial.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô]# and datalancamento <= #[Ô] & Format(MskDataFinal.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô]# [Ô]
ASHKATCHUP 13/07/2015 16:41:24
#448774
Quando eu trabalhava com VB6 + Acess, filtrava as datas usando aspas simples

Select * From Pedidos Where Data >= [ô]01/01/2015[ô]

POCE1DON 15/07/2015 14:38:21
#448889
Citação:

:
Pessoal,

Boa tarde!

Ao fazer o select abaixo, a seguinte mensagem de erro ocorre: Syntax Error in string query expression.

Preciso fazer um select em uma tabela onde guardo os lançamentos do caixa, portanto, a data sempre vem atribuida com a data do sistema.

Uso banco Access e conforme dito, segue o código:

Private Sub txtvalor_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then
If txtvalor > msaldo Then
MsgBox [Ô]Você não pode fazer este lançamento. Saldo insuficiente.[Ô], vbCritical, [Ô]Confirmação[Ô]
txtvalor.SetFocus
Exit Sub
Else
If MsgBox([Ô]Confirma o lançamento?[Ô], vbQuestion + vbYesNo, [Ô]Confirmação[Ô]) = vbYes Then
TLancDesp.Index = [Ô]IdxLancDesp[Ô]
TLancDesp.Seek [Ô]=[Ô], txtlancamento, txtconta, txtdata

If TLancDesp.NoMatch Then
TLancDesp.AddNew
TLancDesp([Ô]IdLancDesp[Ô]) = TLancDesp.RecordCount + 1
TLancDesp([Ô]idlancamento[Ô]) = Val(txtlancamento)
TLancDesp([Ô]IdConta[Ô]) = Val(txtconta)
TLancDesp([Ô]descricao[Ô]) = Left(Label12, 20)
TLancDesp([Ô]IdEmpresa[Ô]) = txtempresa
TLancDesp([Ô]data[Ô]) = txtdata
TLancDesp([Ô]valor[Ô]) = txtvalor
TLancDesp.Update
TLancDesp.Refresh
Else
MsgBox [Ô]Já existe um lançamento nesta conta com a mesma data.[Ô], vbCritical, [Ô]Confirmação[Ô]
txtconta.SetFocus
Exit Sub
End If
Else
Exit Sub
End If
End If
msaldo = msaldo - txtvalor
txtsaldoatual = Format(msaldo, [Ô]#0.00[Ô])
txtconta = [Ô][Ô]
txtvalor = [Ô][Ô]
Label12 = [Ô][Ô]
btnverlanc_Click
txtconta.SetFocus
End If
End Sub

Private Sub btnverlanc_Click()
[ô]mostra lançamentos efetuados

sqllancamento = [Ô]SELECT * FROM LANCAMENTODESP WHERE IDEMPRESA LIKE [ô][Ô] & txtempresa & [Ô][ô] AND DATA >= #[Ô] & Format(txtdata, [Ô]yyyy/mm/dd[Ô]) & [Ô]#[ô][Ô] [ô]AND DATA #[Ô] & txtdata & [Ô]#[ô][Ô]
datadesp.RecordSource = sqllancamento
datadesp.Refresh
End Sub

O resultado desta pesquisa, aparece em uma grid. Anexo segue projeto completo caso precisem.

Obrigado a todos.





esse select deve resolver seu problema

rsContas.Open [Ô]SELECT * FROM LANCAMENTODESP WHERE (IDEMPRESA LIKE [ô][Ô] & txtempresa.text & [Ô][ô]) AND (BETWEEN #[Ô] & Format(txtData.text, [Ô]MM/dd/yyyy[Ô]) & [Ô]# AND DATA #[Ô] & Format(txtData.text, [Ô]MM/dd/yyyy[Ô]) & [Ô]#) ORDER BY FORMAT(DATA,[ô]YYYY/MM/DD[ô]) DESC[Ô]
Tópico encerrado , respostas não são mais permitidas