Jump to content

Recommended Posts

Posted

Estou a tentar fazer uma query através VBA que necessita de procurar se determinadas datas existem. Mas o Access dá me "erro de conversão Tipo de dados incorrecto na expressão de critérios. (Erro 3464)".

Isto deve ser algo bastante simples, mas ainda não consegui descobrir. O array matrix contém strings. Já tentei colocar ## antes e depois de cada variável e até tentar converter para cdate().

Set rstProc = db.OpenRecordset("SELECT * FROM [CAMPANHA] WHERE CAMPANHA='" & matrix(iLinha, enCampanha) & _
"' AND DATA_INICIO='" & matrix(iLinha, enDataInicio) & "' AND DATA_FIM='" & matrix(iLinha, enDataFim) & "';")
Posted

Já está formatado dessa forma, num tratamento que faço antes deste passo. Cheguei até ao ponto de meter cstr(cdate(matrix(iLinha,iColuna))) nesse tratamento.

Por outro lado quero ver se existe um registo em que os campos CAMPANHA AND DATA_INICIO AND DATA_FIM igual ao que estão no array. Se existir não insiro um novo registo a partir do array. O problema está mesmo na conversão para data dos valores no array. deve faltar fazer algo naqela linha para dizer que aqueles valores tratam-se de uma data.

Posted

Ok, depois de aqui uma grande confusão e com o auxilio do contructor de sql do access, lá achei a solução.

Parece que o VBA é um bocado chato a tratar de datas em sql.

Tinhas razão no teu 1º post (no último deste a solução do standard para nós portugueses) , MM/DD/YYYY. Depois faltava-me certos pormenores, as peliculas (' ') nas datas não podem lá estar, e tem de se envolver as variáveis com ##, ou seja no meu código inicial, bastava substituir as peliculas por ##

Set rstProc = db.OpenRecordset("SELECT * FROM CAMPANHA WHERE CAMPANHA.CAMPANHA='" + matrix(iLinha, enCampanha) + "' AND DATA_INICIO=#" + matrix(iLinha, enDataInicio) + "# AND CAMPANHA.DATA_FIM=#" + matrix(iLinha, enDataFim) + "#;")

Como sempre, um obrigado pela ajuda e dísponibilidade Paulino.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.