Access - Contar palabras

 
Vista:

Contar palabras

Publicado por Antirco (10 intervenciones) el 15/06/2009 16:32:32
Se puede en una consulta en acces que te dé el número de palabras de un campo que contiene texto ?
He visto la función LEN pero parece ser que sólo cuenta caracteres.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Contar palabras

Publicado por 2pl (33 intervenciones) el 15/06/2009 16:54:56
Hombre, como poder creo que se puede, asi a bote pronto se me ocurre lo siguiente:
haces un for de 1 a la longitud del trim del campo y cada vez que te encuentres un espacio o una coma sumas 1 a un contador
For I=1 to Len(RTrim([el campo en cuestion]))
if mid([campo en cuestion];I;1)=" " or mid([campo en cuestion];I;1)=","
palabras=palabras+1
endif
next
PD:
Salvo error u omisión
No lo he probado, lo dejo para ti
Saludos desde Cádiz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez
Val: 37
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

RE:Contar palabras

Publicado por Enrique Ramírez (629 intervenciones) el 16/06/2009 16:15:29
que yo sepa no lo puedes hacer por consulta, hazlo por código, cra un formulario con dos botones y pega esto, tengo una tabla llamada datos y hay un campo llamado ciudad, el programa cuenta las palabras de ese campo

Option Compare Database
Dim i, c_pal As Integer
Dim Var As String
Dim db As DAO.Database, rs As DAO.Recordset

Private Sub BtnProceso_Click()
Var = "SELECT Datos.Ciudad FROM Datos ORDER BY Datos.Ciudad"
Set db = CurrentDb()
Set rs = db.OpenRecordset(Var, dbOpenDynaset)
If rs.RecordCount > 0 Then
Do While rs.EOF = False
c_pal = 0
For i = 1 To Len(rs!ciudad)
If Mid(rs!ciudad, i, 1) = " " Then
c_pal = c_pal + 1
End If
Next i
Debug.Print ""
Debug.Print rs!ciudad
Debug.Print "Total de palabras = " & c_pal + 1
rs.MoveNext
Loop
End If
rs.Close
Set db = Nothing
BtnSalir_Click
End Sub

Private Sub BtnSalir_Click()
DoCmd.Close
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contar palabras

Publicado por mi menda (1111 intervenciones) el 17/06/2009 11:27:36
Hola:
Otra opción también sin probar:

Dim x As Variant

x = Split(Campo, " ")
MsgBox "El campo contiene " & x(Ubound) + 1 & " palabras"

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez
Val: 37
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

RE:Contar palabras

Publicado por Enrique Ramírez (629 intervenciones) el 17/06/2009 17:58:30
Siguiendo el ejemplo del maestro mi menda mi codigo quedo asi, solo que modifique la sintaxis del Ubound ya que me marcaba error.

Private Sub BtnProceso_Click()
Var = "SELECT Datos.Ciudad FROM Datos ORDER BY Datos.Ciudad"
Set db = CurrentDb()
Set rs = db.OpenRecordset(Var, dbOpenDynaset)
If rs.RecordCount > 0 Then
Do While rs.EOF = False
x = Split(rs!Ciudad, " ")
MsgBox "La descripciono " & rs!Ciudad & " contiene " & UBound(x) + 1 & " palabras"
rs.MoveNext
Loop
End If
rs.Close
Set db = Nothing
BtnSalir_Click
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar