Tengo un tabla que se llama Ciudades, dentro hay un campo
que se llama capital y quiero que el parentesis que tengo
dentro me lo inserte en otro campo llamado pais y lo
elimine del campo capital, Como puedo hacer esta consulta?
Ejemplo
Capital Baghdad (Iraq) y quiero que salga:
Capital Baghdad
Pais Iraq
RESPUESTAS:
===========
JUAN M AFAN DE RIBERA:
primero, deberías copiar esta función en un módulo estandar.
Function SacarPais(cadena As String, borrarPais As Boolean) As String
Dim pos As Long
Dim longitudPais As Integer
Dim longitudCapital As Integer
pos = InStr(cadena, "(")
If pos > 0 Then
longitudPais = Len(cadena) - (pos - 1)
longitudCapital = pos - 1
If borrarPais = True Then
SacarPais = Left(cadena, longitudCapital)
Else
SacarPais = Right(cadena, longitudPais)
End If
Else
If borrarPais = True Then
SacarPais = cadena
Else
SacarPais = "n/a"
End If
End If
End Function
y después crear una consulta de actualización sobre la tabla Ciudades, y en
la que actualizaras, por un lado, el campo Capital a:
SacarPais([capital];Verdadero)
que extraería el nombre de la ciudad ... y por otro lado, el campo Pais a:
SacarPais([capital];Falso)
que extraería el nombre del país (con paréntesis, y si no hubiera ninguno,
escribiría "n/a")
UPDATE Capitales SET Capitales.Capital = SacarPais([capital],True),
Capitales.Pais = SacarPais([capital],False);
espero que te sirva. Antes de nada, haz una copia de tu tabla Ciudades, por
si acaso saliera alguna cosa rara (que en principio, no tiene por qué,
pero... eso... por si acaso, que nunca se sabe)
MARJAN
======
Si creas dos nuevos campos, p.e. Capital2 y País.
Haces una consulta de actualización. En Actualizar a... de estos campos
pones para País :
Mid([capital];(Instr([capital];"(")+1);(Instr([capital];")")-(Instr([capital];"(")+1)))
Y Para capital :
Left([capital];Instr([capital];"(")-1)
Y ejecutas la consulta
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)