Access - Separar string en tokens en VB

 
Vista:

Separar string en tokens en VB

Publicado por Marc (13 intervenciones) el 03/08/2005 08:29:51
Hola,
Es posible en visual basic cojer un campo Memo de una tabla y almacenarlo en una variable de tipo String, y a partir de esta variable ir particionanándola en tokens? Parecido a lo que en Java se hace con la función stringTokenizer...

La idea es depurar ese campo largo: quitar varios espacios seguidos, posibles palabras juntas repetidas... Y después machacar el campo antiguo por el nuevo depurado.

Un saludo.
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
Imágen de perfil de Alejandro

Obtener y depurar contenido de campo Memo en Visual Basic

Publicado por Alejandro (4142 intervenciones) el 06/06/2023 22:11:55
Sí, Marc, sí es posible en Visual Basic obtener el contenido de un campo Memo de una tabla y almacenarlo en una variable de tipo String. Puedes utilizar la función `GetString` del objeto `Recordset` para obtener el contenido del campo Memo y asignarlo a una variable String. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
Dim rs As DAO.Recordset
Dim memoField As String
 
Set rs = CurrentDb.OpenRecordset("NombreDeLaTabla")
memoField = rs.Fields("NombreDelCampoMemo").GetString
rs.Close
Set rs = Nothing

Una vez que tienes el contenido del campo Memo en la variable `memoField`, puedes manipularlo y particionarlo en tokens utilizando las funciones de cadena disponibles en Visual Basic. Puedes utilizar la función `Split` para dividir la cadena en base a un delimitador y obtener un array de tokens.

Aquí tienes un ejemplo de cómo puedes utilizar la función `Split`:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim tokens() As String
Dim delimiter As String
Dim cleanedField As String
 
delimiter = " " ' Puedes utilizar cualquier delimitador que necesites
 
tokens = Split(memoField, delimiter)
 
' Realiza las operaciones de depuración en los tokens obtenidos
' ...
 
' Une los tokens depurados en una cadena nuevamente
cleanedField = Join(tokens, delimiter)
 
' Actualiza el campo Memo en la tabla con la cadena depurada
rs.Edit
rs.Fields("NombreDelCampoMemo").Value = cleanedField
rs.Update

Recuerda que debes tener una referencia a la librería de objetos de datos de Microsoft Access (DAO) para poder utilizar el objeto `Recordset`. Puedes agregar esta referencia seleccionando "Herramientas" -> "Referencias" en el Editor de Visual Basic y luego buscando y seleccionando "Microsoft DAO x.x Object Library".

Espero que esta información sea útil para tus necesidades de depuración de campo Memo en Visual Basic. ¡Buena suerte!
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