Checkbox no me funciona

19/04/2010 - 14:35 por sebastico | Informe spam
Amigos

Me he estado quebrando la cabeza para programar para una bd en Access 2003,
una búsqueda mediante checkboxes, sin embargo, no he tenido éxito. Me han
facilitado un código que, sin embargo, no me funciona como les indico más
adelante.

Tengo un formulario y en el Header form están los unbound checkboxes y un
botón para activar la búsqueda. La sección Detail tiene las cajas de texto
que muestra los registros encontrados en la búsqueda al marcar uno o varios
checkboxes.

Este es el código

Option Compare Database
Option Explicit

Private Sub bFiltrar_Click()
Dim strTmp As String
Dim lngLen As Long
Dim strWhere As Integer

strTmp = ""
If Me.chkBD.Value Then
strTmp = "'BDs',"
End If

If Me.chkBE.Value Then
strTmp = strTmp & "'BES',"
End If

If Me.chkCON.Value Then
strTmp = strTmp & "'CONS',"
End If

lngLen = Len(strTmp) - 1
If lngLen > 0 Then
strWhere = "TemsID IN (" & Left$(strTmp, lngLen) & ") AND "
End If
End Sub

La variable strWhere es la que no he podido declarar, he usado string, long,
integer, Boolean, byte y no me funciona.

“TemsID, se refiere a un campo numérico

Además estas son las referencias que tengo en Access y desconozco si falta
alguna
Visual Basic For Applications
Microsoft Access 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Objects 2.5 Library

Me pueden ayudar con este problema o bien indicarme si lo que necesito hacer
(buscar mediante checkboxes) no se puede hacer en la forma que necesito.

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Ignacio
19/04/2010 - 14:56 | Informe spam
¡Hola, Sebastico!

strWhere debe ser declarado com string.
Además al construirlo falta algo después de "AND" o sobra éste.
Por otra parte is TemsID se refiere a un campo numérico no entiendo
cómo puede adoptar los valores BDs, BES y/o CONS.

Espero que te sirva de ayuda.

Un saludo,
Ignacio.
#2 Juan M. Afan de Ribera
20/04/2010 - 11:13 | Informe spam
paso a paso por instrucciones -F8La variable debes declararla como String.
Eso para empezar y ya no lo cambies. El hecho de que te funcione o no te
funcione es simplemente y como ya te habiamos dicho porque no estabas
formando adecuadamente la cadena del strWhere.

Deberías de conocer un poco las herramientas para depurar el código. Son muy
útiles. Están en el menu de la ventana de Visual Basic, depuracion (paso a
paso por instrucciones -tecla F8-, que ejecutará el código línea a línea,
combinandolo con puntos de interrupción - alternar puntos de interrupción -
tecla F9, que parará la ejecución del código en la línea donde lo pongas).
También, después de cada línea een la que se esté asignando cadenas o valores
a la variable strWhere, puedes poner una línea de código:

Debug.Print strWhere

que lo que hará será escribir en la ventana de Inmediato (activar en Visual
Basic menu, ver, ventana inmediato) el valor que tenga en ese momento la
variable strWhere. Hazlo así y verás como puedes ir entendiendo el código que
has escrito y qué es lo que hace, ya sea que lo haga bien o que lo haga de
manera diferente a como esperabas.

Por otro lado, no te limites a escribir el código que has retocado. Eso solo
provoca perdida de tiempo en el que te lee. Debes indicar los cambios que has
ido haciendo al código, donde te señala error, qué error te aparece, etc etc.
Cuanta más información y mas detalles sobre loq ue pasa o no pasa, será más
fácil para el que te responde. Si no, la impresión que tenemos desde aquí es
de una persona que pone aquí un código y más o menos dice: "venga, arreglame
esto que no funciona... voy a hacerme un cafelito y cuando vuelvo lo quiero
todo listo!" y evidentemente ese no es el espiritu de estos foros. También
supongo que esa no es tu intención, no?

Saludos desde Barcelona,
Juan M. Afán de Ribera
http://accessvbafaq.mvps.org


"sebastico" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida