Jump to content
Sr Inovação

Erro Unclosed quotation mark after the character string

Recommended Posts

Sr Inovação

Bom dia

Tenho a fazer um projecto de gerir receitas e despesas domesticas e tenho que filtar-las por meses e anos.

por isso tenho tenho duas comboboxes,uma com os meses e outra com os anos.

Estou a fazer o select do mes de Janeiro para filtar as receitas desse mês, mas agora está a dar- me este erro:

Unclosed quotation mark after the character string ''. 

Vi este link mas temo que meu problema nao se resolva só assim:http://blog.sqlauthority.com/2008/02/17/sql-server-how-to-escape-single-quotes-fix-error-105-unclosed-quotation-mark-after-the-character-string/

           
Case "Janeiro"
                cmdGetPessoasReceitas = New SqlCommand("Select Id_Receita,Tipo_Receita,Montante_receita,Data_receita,Data_fixa_receita,Detalhes_receita " & _
          "From Receitas " & _
          "Where Receitas.Id_pessoa = '" & txtId_pessoa.Text & "'And Data_receita Between 01-01-'" & cbAno.Text & " And 01-01-'" & cbAno.Text & "'", frmMainForm.connection)

        End Select

Se me puderem ajudar agradecia

Share this post


Link to post
Share on other sites
Rechousa

Experimenta assim:

Case "Janeiro"
                cmdGetPessoasReceitas = New SqlCommand("Select Id_Receita,Tipo_Receita,Montante_receita,Data_receita,Data_fixa_receita,Detalhes_receita " & _
          "From Receitas " & _
          "Where Receitas.Id_pessoa = '" & txtId_pessoa.Text & "'And Data_receita Between '" & cbAno.Text & "-01-01' And '" & cbAno.Text & "-01-31'", frmMainForm.connection)

        End Select

PS1: Mudei a data superior de 01-01-ano para 31-01-ano, isto porque se queres os resultados de Janeiro... Deves querer do dia 01 ao dia 31.

PS2: Isto para ficar porreiro, deverias de ter os meses num array (por exemplo) e em vez de usares os dias como limite (de 1 a 31, p.e.) usarias AND Month(Data_Receita) = mes, em que mes é a posição do array +1


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
Sr Inovação

Obrigado Rechousa funciona perfeitamente

Quanto a tua sugestão não entendi muito bem, os meses não tem sempre o mesmo numero de dias. podes explicar melhor....... 

Share this post


Link to post
Share on other sites
Rechousa

...os meses não tem sempre o mesmo numero de dias. podes explicar melhor....... 

Por isso mesmo.

Tens um case, logo antes deves ter um switch, que deverá ser pelo nome do mês. Em vez do nome não consegues obter o número do mês?

Se assim fosse bastava:

                cmdGetPessoasReceitas = New SqlCommand("Select Id_Receita,Tipo_Receita,Montante_receita,Data_receita,Data_fixa_receita,Detalhes_receita " & _
          "From Receitas " & _
          "Where Receitas.Id_pessoa = '" & txtId_pessoa.Text & "' And YEAR(Data_receita) = " & cbAno.Text & " AND MONTH(Data_receita) = " & o_teu_numero_do_mes, frmMainForm.connection)


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
Sr Inovação

Eu coloquei os meses á unha na combobox e não tenho os numeros dos meses,mas agora fiz query para o mes de feveireiro e só dá até ao dia 28 e se eu coloco até ao dia 29 dá-me erro,o problema é quando houver anos bissextos alguma ideia para resolver este problema?

     

Atenção: eu só tenho um campo para a data,esta não está divida em vários campos 

Será que a proposta do Rechousa resolve esse problema ?                                                     

Share this post


Link to post
Share on other sites

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.