Cómo contar el número de registros que contienen, dentro de un campo determinado, parte de una cadena de texto

Necesito ayuda para contar los registros que tienen parte de una cadena de texto concreta dentro de un campo. Lo que quiero, en definitiva es el equivalente al criterio like '*cadena*' pero en vba.

2 Respuestas

Respuesta
1

No hay equivalente, tienes que usar precisamente LIKE '*cadena*'.

Por ejemplo, que quieres lanzar un mensaje que te diga los registros de la tabla TDatos en los que en el campo Notas esté la palabra "alérgico":

Msgbox "Hay " & DCount("*","TDatos","Notas LIKE '*alérgico'*") & " personas alérgicas a algo"

Que quieres llevar a una variable el número de registros que contienen lo que pongas en un cuadro de texto txtBuscar:

Dim miNum as Integer

miNum=DCount("*","TDatos","Notas LIKE '*" & Me.txtBuscar & "'*") 

Un saludo.


Respuesta
1

La respuesta que le dan es suficiente para su pregunta, no obstante, le quiero aportar algo más completo para que pueda automatizar la búsqueda y el conteo de los registros en cada campo de texto de una determinada tabla. Se requiere de:

1 Módulo 2 formularios y las tablas sobre las cuales se realiza la búsqueda. Hay una tabla que se llama tblResultado, esta no se tiene en cuenta para la búsqueda y no se podrá seleccionar. Este es el formulario.

En este ejemplo hay 3 tablas: tbl_1, tbl_2 y tbl_3 a cada una le he agregado 3 campos y algunos registros, en algunos registré la palabra mundo, observe que el subformulario se muestra el resultado de la búsqueda indicando el nombre del campo que tiene la palabra y el número de registros que contienen el texto.

Descargue el ejemplo de este link http://www.filebig.net/files/mK9Md85XDt y mire el código del módulo y del formulario es algo interesante.

Muchas gracias. Me parece muy interesante esta aportación. 

Estudie el código de la función y el del origen de datos del combobox. Puede importar los formularios y el modulo. De las tablas solo la tabla tblResultado. Éxitos

Si desea hacer la búsqueda del texto también en campo "Texto Largo" (memo) debe modificar la siguiente línea en la función CtaTextoRegistros()

If FieldTypeName(fld) = "Texto" Or FieldTypeName(fld) = "Texto Largo" Then

Adicione lo que está resaltado. Éxitos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas