Falla el filtraje con cuadros combinados

Para empezar soy un novato en esto del Access. El tema es que he hecho una pequeña base de datos de la siguiente manera: en una tabla he introducido una lista de plantas y en los campos todas las variables de cada parámetro que tiene una planta i con una S marco la variable del parámetro.

Una vez hecha la tabla y a través de un formulario hecho con cuadros combinados hago un filtraje para que me dé una lista de plantas con esas características.

Cuando ejecuto surge el problema en el último parámetro i no sé porque? Que es lo que ocurre?

Adjunto el inci y el final del código. Supongo que para ustedes es un código sencillito pero para mí ha supuesto semanas llegar hasta aquí

Muchas gracias de antemano.

Private Sub Llistar1_Click()
   Llista.Value = ""
Dim textos As String
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb()
Dim str As String
str = "SELECT * from orientació where id_orientacio =" & Cuadro_combinado17.Value
Set rs = db.OpenRecordset(str, dbOpenDynaset)
Set rs2 = CreateObject("ADODB.Recordset")
Set conn = Application
If rs.Fields(1) = "Est" Then
'str = "SELECT * from T where Est ='S'"
textos = textos & " and Est ='S'"
Set rs = db.OpenRecordset(str, dbOpenDynaset)
End If
'rs.OpenRecordset "SELECT * from T where Est = 'S'", db2, apopenSts
str = "SELECT * from orientació where id_orientacio =" & Cuadro_combinado17.Value
Set rs = db.OpenRecordset(str, dbOpenDynaset)
If rs.Fields(1) = "Nord" Then
'str = "SELECT * from T where Nord ='S'"
textos = textos & " and Nord ='S'"
End If
str = "SELECT * from orientació where id_orientacio =" & Cuadro_combinado17.Value
Set rs = db.OpenRecordset(str, dbOpenDynaset)
If rs.Fields(1) = "Sud" Then
'str = "SELECT * from T where Sud ='S'"
textos = textos & " and Sud ='S'"
End If
str = "SELECT * from orientació where id_orientacio =" & Cuadro_combinado17.Value
Set rs = db.OpenRecordset(str, dbOpenDynaset)
If rs.Fields(1) = "Oest" Then
'str = "SELECT * from T where Oest ='S'"
textos = textos & " and Oest ='S'"
End If
'Fi Orientació
.....
If rs.Fields(0) = 9 Then
'str = "SELECT * from T where Hidroponic ='S'"
'textos = textos & " and Hidroponic = 'S'"
Dim textos2 As String
textos2 = " and Hidroponic = 'S'"
End If
Select Case Cuadro_combinado50.Value
Case 1: MsgBox "moll"
Case 2: MsgBox "humit"
Case 3: MsgBox "mig"
Case 4: MsgBox "baix"
Case 5: MsgBox "Sec"
End Select
Dim s() As String
's = Split(textos, " and ")
textos = Mid(textos, 5)
'Fi Tipologia
str = "SELECT * from T where " & textos & textos2
Set rs = db.OpenRecordset(str, dbOpenDynaset)
While Not rs.EOF
Llista.Value = Llista.Value & vbCrLf & rs.Fields(1)
rs.MoveNext
Wend
rs.Close
End Sub         ' cmdFiltrar_Click

Añade tu respuesta

Haz clic para o