|
Postada em 03/11/2008 17:48 hs
Boa tarde. Possuo um BD em MySQL e preciso trazer todos os registros de uma tabela tendo como parâmetro um campo no formato data. Como o o campo data em MySQl é padrão yyyy-mm-dd tentei fazer a conversão em modo de execução da consulta SQL, conforme abaixo. No entanto apesar de possuir registros com o campo "Data" iguais ao parâmetro solicitado na SQL (varData) não há retorno de resultados. O código é:
Set ob_A = New ADODB.Recordset SQL1 = "SELECT * FROM tbl_ComprasMat WHERE Date_Format(Data, '%d/%m/%y') = '" & Format(varData, "dd/mm/yyyy") & "'" ob_A.Open SQL1, Con, adOpenDynamic, adLockOptimistic, adCmdText
If ob_A.EOF Then MsgBox "Não há movimento de estoque para a data ou período relacionado.", vbCritical, "Atenção!" Exit Sub End If
A variável varData está no formato 'dd/mm/yyyy'. Alguém saberia informar se há algo errado na sintaxe sql? Desde já agradeço.
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 03/11/2008 18:26 hs
você tentou assim SQL1 = "SELECT * FROM tbl_ComprasMat WHERE Data ='" & Format(varData, "yyyy-mm-dd") & "'"
|
|
|
|
Postada em 03/11/2008 19:26 hs
Ainda não havia tentado. Agora deu certo. Muito obrigado pela ajuda. Obrigado mesmo.
E aproveitando, no mesmo caso acima preciso também encontrar registros em que o campo Data esteja entre duas datas (Inicial e Final). Com base na sua ajuda tentei montar a SQL desta maneira: "SELECT * tbl_ComprasMat WHERE Data between #" & Format(varDataInicial, "yyyy-mm-dd") & "# and #" & Format(varDataFinal, "yyyy-mm-dd") & "#"
No entanto não foi aceita a sintaxe pelo MySQL, saberia me dizer o que pode estar errado agora?
|
TÓPICO EDITADO
|
|
|
|
Treze
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 04/11/2008 00:50 hs
MySQL não aceita # e sim ' veja se assim funciona "SELECT * tbl_ComprasMat WHERE Data between '" & Format(varDataInicial, "yyyy-mm-dd") & "' and '" & Format(varDataFinal, "yyyy-mm-dd") & "'"
|
|
|
|
Postada em 04/11/2008 01:01 hs
dseculpe tinha mais erros veja agora "SELECT * FROM tbl_ComprasMat WHERE Data between '" & Format(varDataInicial, "yyyy-mm-dd") & "' and '" & Format(varDataFinal, "yyyy-mm-dd") & "'"
|
|
|
|
Postada em 04/11/2008 09:10 hs
Deu certo. Além da ausência do "from" (erro na digitação) havia uma aspa a mais. A sua linha resolveu o problema. Muito obrigado mais uma vez.
|
|
|