Array
(
)

AJUDA NUM SELECT

Oliverjer10
   - 21 ago 2008

ola pessoal,

será qua alguem pode me ajudar nesse select está apresentando erro:

segue uma parte do codigo:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
recebe_cookies()

Dim vMatricula, vMesini, vdata_ini, vdata_fim, vexercicio As String

vMatricula = lblMatricula.Text
´************************
vdata_ini = ´16/01/2000´
vdata_fim = ´15/02/2000´
vMesini = lblMes.Text
vexercicio = lblAno.Text

Select Case vMesini
Case ´Janeiro´
vMesini = ´01´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Fevereiro´
vMesini = ´02´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)

Case ´Março´
vMesini = ´03´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Abril´
vMesini = ´04´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Maio´
vMesini = ´05´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Junho´
vMesini = ´06´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Julho´
vMesini = ´07´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Agosto´
vMesini = ´08´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Setembro´
vMesini = ´09´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Outubro´
vMesini = ´10´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Novembro´
vMesini = ´11´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
Case ´Dezembro´
vMesini = ´12´
vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)
End Select

If vtipo = ´Individual´ Then

Dim dr As Data.Odbc.OdbcDataReader

nesse select apresenta o erro:
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ´6´.

Dim sql As String = ´select * from tb_atvltr where cod_cadusu = ´ + vMatricula + ´ and (year(dta_hor_atvltr) =´ + RTrim(Str(Year(vdata_ini))) + ´ or (year(dta_hor_atvltr) =´ + RTrim(Str(Year(vdata_fim))) + ´ and (month(dta_hor_atvltr) =´ + RTrim(Str(Month(vdata_ini))) + ´ and (month(dta_hor_atvltr) =´ + RTrim(Str(Month(vdata_fim))) + ´ ´´´

Dim conexao As Data.Odbc.OdbcConnection

conexao = New Data.Odbc.OdbcConnection(´Driver={Microsoft Access Driver (*.mdb)};DBQ=u:\Tradenet.mdb´)
conexao.Open()

Dim cmd As Data.Odbc.OdbcCommand = New Data.Odbc.OdbcCommand(sql, conexao)
dr = cmd.ExecuteReader()

vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)

DataGrid1.DataSource = dr
DataGrid1.DataBind()
dr.Close()
conexao.Close()
conexao = Nothing

Else

End If

´vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + ´/´ + Mid(vexercicio, 1, 4)
´vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + ´/´ + Mid(vexercicio, 1, 4)

´dr.Close()
´conexao.Close()
´conexao = Nothing

End Sub

grato.

Emerson
   - 22 ago 2008

creio que estejam faltando alguns parêntesis nessa instrução.
Dim sql As String = ´select * from tb_atvltr where cod_cadusu = ´ + vMatricula +´ and ((year(dta_hor_atvltr) = ´ + RTrim(Str(Year(vdata_ini))) + ´) or (year(dta_hor_atvltr) = ´ + RTrim(Str(Year(vdata_fim))) + ´)) and ((month(dta_hor_atvltr) = ´ + RTrim(Str(Month(vdata_ini))) + ´) or (month(dta_hor_atvltr) = ´ + RTrim(Str(Month(vdata_fim))) + ´)) ´

creio também que o case possa ser resumido:
#Código

Select Case vMesini
  Case "Janeiro"
    vMesini = "01"
  Case "Fevereiro"
    vMesini = "02"
  Case "Março"
    vMesini = "03"
  Case "Abril"
    vMesini = "04"
  Case "Maio"
    vMesini = "05"
  Case "Junho"
    vMesini = "06"
  Case "Julho"
    vMesini = "07"
  Case "Agosto"
    vMesini = "08"
  Case "Setembro"
    vMesini = "09"
  Case "Outubro"
    vMesini = "10"
  Case "Novembro"
    vMesini = "11"
  Case "Dezembro"
    vMesini = "12"
End Select

if vMesini = "01"
  vdata_ini = Mid(vdata_ini, 1, 3) + "12/" + Str(Val(Mid(vexercicio, 1, 4)) - 1)
else
  vdata_ini = Mid(vdata_ini, 1, 3) + LTrim(Str(Val(vMesini) - 1)) + "/" + Mid(vexercicio, 1, 4) 
end if

vdata_fim = Mid(vdata_fim, 1, 3) + vMesini + "/" + Mid(vexercicio, 1, 4)


Oliverjer10
   - 22 ago 2008

Muito Obrigado emerson.en,
fico agradecido pela ajuda do colega.

um abraço.