Problema con una instrucción sql

¿Hola gente de Todoexpertos como están?
Verán tengo el siguiente problema que me esta reventando el coco "La Cabeza",
Este es el Código
Private Sub DataCombo1_Click(Area As Integer)
    If Area <> 2 Then Exit Sub
    Dim sql As String
    sql = "SELECT * FROM Direccion WHERE idSect= " & _
                      "(SELECT idSect FROM Sector" & _
                      "WHERE NombreSector = '" & DataCombo1.Text & "')"
    If Not rs_DataList.State = adStateClosed Then
        rs_DataList.Close
    End If
esta es la seccion que presenta el error
    << rs_DataList.Open sql, cnn, adOpenStatic, adLockOptimistic, adCmdText >>
    ' Asigna los datos en el DataList
    Set DataList1.RowSource = rs_DataList
End Sub
El Código es Simple tengo un Datacombo1 y un DataList1 en el datacombo1 muestro los sectores de una ciudad y el datalist1 las calles que le pertenecen a cada sector, al hacer click en uno de los items del datacombo1 en el datalist1 cambia y muestra las calles que tiene ese sector...
Por Favor si alguien me puede ayudar...
Yo me estuve guiando de la siguiente página...
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/289-cargar-datalist-datacombo-de-dos-tablas.htm 
ese codigo es de ellos... Y realice el ejemplo como ellos lo tienen alli y corre perfectamente, ahora bien que hago, me creo mis tablas en access igualitas a la de ellos solo que en lugar de Clientes Yo coloque Direccion y en lugar de Ciudades yo coloque Sector... Es facil Solo Cambie los Nombre nada mas, es una relacion sencilla de uno a varios... 
Bueno con el original corre perfectamente, con sus tablas de clientes y ciudades y con el mio que es prácticamente una copia exacta solo que tiene Sector y Dirección no funciona... Que vaina!

1 respuesta

Respuesta
1
Dos detalles muy importantes:
1) Al cortar las líneas en varias para que se lea mejor (como haces en la construcción del SQL) hay que tener cuidado con los blancos. Procura que siempre queden los blancos al final de las líneas para asegurarte que no se juntan las palabras, que es lo que te está ocurriendo. Solución: coloca un blanco detrás de la palabra "Sector" en la segunda línea de la asignación de la variable SQL
2) Hay que tener mucho cuidado al construir un SQL que las variables que incluimos no contengan el carácter comilla ('), ya que si "DataCombo1.text" contiene una comilla, el SQL que se construye tendría 3 caracteres comilla: apertura, cierre, apertura... y no estaría cerrada la última comilla, por lo que tendríamos un error.
No obstante creo que será el primer punto lo que te está dando el error. Ya sabes pon bien él espacio y deja la instrucción así:
sql = "SELECT * FROM Direccion WHERE idSect= " & _
                      "(SELECT idSect FROM Sector " & _
                      "WHERE NombreSector = '" & DataCombo1.Text & "')"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas