none
Error al ejecutar Consulta RRS feed

  • Pregunta

  • estoy buscando ayuda con este codigo, al ejecutar lo siguiente: 

    "lo que estoy trayendo son datos de una tabla"

     ''******CARGAR COMOBO BOX CON EL MES 
            If txtcedula.Text <> "" Then
                Dim CedulaCmb As String
                Dim Cmbdesde As String
                Dim cmbhasta As String

                CedulaCmb = txtcedula.Text  
                Cmbdesde = Me.cmbdesde.Text 'es el año de inicio ejemplo 2001, es tipo texto
                cmbhasta = Me.cmbhasta.Text ' es el año final ejemplo 2010, es tipo texto 

                Dim ConsultCombo As String
                ConsultCombo = "select * from vacaciones3 where cedula=" + CedulaCmb + "and anio between" + Cmbdesde + "and" + cmbhasta + "order by anio, mes asc"
                If Cmbdesde <> " " Then
                    Try
                        STRCOMANDO = ConsultCombo '"select * from vacaciones3"
                        DAdapter = New System.Data.SqlClient.SqlDataAdapter(STRCOMANDO, conexion)
                        DSet = New DataSet
                        DAdapter.Fill(DSet)
                        CmbMesP1.DataSource = DSet.Tables(0)
                        CmbMesP1.DisplayMember = "id"
                        CmbMesP1.ValueMember = "mes"
                    Catch ex As Exception
                        MsgBox(ex.ToString)
                    End Try
                End If
            End If

    pero me muestra el siguiente error: 

    se especifico una expresion no booleana en un contexto donde se esperaba una condicion, cerda de'between2001and'

    2001: es la fecha selecciona en un combobox

    por favor su ayuda por que no se a que se refiere.

    Gracias. 

    Saludos.

    viernes, 7 de julio de 2017 18:39

Respuestas

  • Hace falta espacios a partir del predicado BETWEEN.

    Dim ConsultCombo As String
    ConsultCombo = "SELECT * FROM vacaciones3 WHERE cedula = " + CedulaCmb +
                " AND anio BETWEEN " + Cmbdesde + " AND " + cmbhasta + " ORDER BY anio, mes ASC"

    Sin embargo lo recomendado es que parametrizes la consulta sql.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 7 de julio de 2017 19:35
  • Por eso mismo le puedes dar un formato ... YYYY ._____.
    viernes, 7 de julio de 2017 20:35

Todas las respuestas

  • Tienes que usar DATEFORMAT  para poder hacer el between  , si me pasaras tus variables podria hacerte un query y asi entenderias

    viernes, 7 de julio de 2017 19:19
  • Hace falta espacios a partir del predicado BETWEEN.

    Dim ConsultCombo As String
    ConsultCombo = "SELECT * FROM vacaciones3 WHERE cedula = " + CedulaCmb +
                " AND anio BETWEEN " + Cmbdesde + " AND " + cmbhasta + " ORDER BY anio, mes ASC"

    Sin embargo lo recomendado es que parametrizes la consulta sql.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 7 de julio de 2017 19:35
  • Hola, falta un espacio en esta parte

    + " and anio between " + 

    te sugeriría que parametrices tu consulta

    revisa

    Consulta entre fechas usando datapicker


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Solo dejo mis respuestas en el foro si son votadas o respuesta, de lo contrario por mantener el orden las borro.Saludos. Lima-Perú.

    • Editado Augusto1982 viernes, 7 de julio de 2017 19:50
    viernes, 7 de julio de 2017 19:47
  • Al usar tu Codigo me sale el siguiente error: (0x80131904) Sintaxis incorrecta cerca de la palabra clave 'ORDER'

    soy un poco nuevo en esto, me pueden por favor guiar para poder parametrizar la consulta.

    Gracias por su pronta ayuda. 

    viernes, 7 de julio de 2017 20:25
  • lo que pasa es que no estoy trabajando con formatos de Fechas, todo es texto

    gracias. 

    viernes, 7 de julio de 2017 20:26
  • Al usar tu Codigo me sale el siguiente error: (0x80131904) Sintaxis incorrecta cerca de la palabra clave 'ORDER'

    Gracias. 

    viernes, 7 de julio de 2017 20:27
  • Por eso mismo le puedes dar un formato ... YYYY ._____.
    viernes, 7 de julio de 2017 20:35
  • En ese caso las variables son las que se muestran en el codigo: 

    Dim CedulaCmb As String
                Dim Cmbdesde As String
                Dim cmbhasta As String
    
                CedulaCmb = txtcedula.Text
                Cmbdesde = Me.cmbdesde.Text
                cmbhasta = Me.cmbhasta.Text
    

    Gracias. 

    viernes, 7 de julio de 2017 20:58