>Alguien sabe como cambiar el tipo de dato de un campo via programa en una
base de datos Access.
Sí, yo.
Puedes hacer algo así :
<<<<<<<<<<<<<<<<<<<<<<<
Sub CambiarMDB
Dim DbMDB as database
Set DbMDB = opendatabase( "c:\micarpeta\mimdb" )
on error goto ErrorModificando
' Iniciamos el proceso.
WorkSpaces(0).BeginTransactions
DbMDB.Execute "ALTER TABLE Tabla ADD COLUMN NuevoCampo Text
(50)",dbfailonerror
DbMDB.Execute "UPDATE Tabla SET NuevoCampo=ViejoCampo", dbfailonerror
DbMDB.Execute "ALTER TABLE Tabla DROP ViejoCampo",dbfailonerror
WorkSpaces(0).CommitTrans
Exit Sub
ErrorModificando:
WorkSpaces(0).Rollbak
End Sub
>>>>>>>>>>>>>>>>>>>>><
Éste ejemplo te sustituye ViejoCampo por NuevoCampo, guardando los datos.
Ten en cuenta que aquí se supone que ambos campos serán de texto.
Si hubiera que hacer algún tipo de transformación del dato (de texto a
integer, por ejemplo), habría que tenerlo en cuenta en la instrucción
UPDATE...
También puedes limitar el alcance de la instrucción UPDATE poniendo una
claúsula WHERE. Por ejemplo :
DbMDB.Execute "UPDATE Tabla SET NuevoCampo=ViejoCampo WHERE
ViejoCampo<=1000", dbfailonerror
Si no indicas el WHERE, afecta a toda la Tabla.
Espero haberte ayudado.
Si tienes alguna duda, avísame.
Saludos.
Una obediencia ciega supone siempre una ignorancia extrema.
ORZO, <orzo@orzo.com>