División de un campo

Hola. Me gustaría saber si es posible dividir el contenido de un campo en dos, y poder definir así dos campos distintos. Te pongo un ejemplo más claro: tengo un campo de base de datos al que llamé APELLIDOS, pues bien, en él se incluyen los dos apellidos de una persona; sin embargo cuando lo definí, no caí en la cuenta que me sería más útil tener un campo APELLIDO1º y otro APELLIDO2º. ¿Existe algún método para poder cambiar ésto?. La base de datos ya está creada, y tengo alrededor de 1800 registros, y me fastidiaría mucho tener que perder datos.
Un saludo.
1

1 Respuesta

9.725 pts.
Alguna vez nos ha tocado a todos el separar los apellidos. La cuestión es que a mí me tocó hace tiempo y ya no conservaba la rutina y, para esta ocasión, me he tenido que improvisar una:
Copia las siguientes funciones en un módulo. Añade los campos correspondientes al primer y segundo apellido a tu tabla. Haz una consulta de actualización en la que los campos 1º y 2º apellido se actualicen con las funciones primerap y segundoap (que te paso) usando de parámetro el campo [apellidos].
Public Function Primerap(apellidos As String) As String
Dim i As Integer, temporal As String
i = InStr(apellidos, " ")
If i <> 0 Then
temporal = Left(apellidos, i)
Do While InStr("de la lo del el san los las ", temporal) <> 0
temporal = temporal & Primerap(Right(apellidos, Len(apellidos) - (Len(temporal))))
Loop
Else
temporal = apellidos
End If
Primerap = temporal
End Function
Public Function Segundoap(apellidos As String) As String
Dim temporal As String
temporal = Right(apellidos, Len(apellidos) - Len(Primerap(apellidos)))
Segundoap = Primerap(temporal)
End Function
Si te resulta algo difícil entender el código ten en cuenta que he usado recursividad (repasa el concepto).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas