Access - Modificar tipo de campo

 
Vista:

Modificar tipo de campo

Publicado por Antonio Salgado (1 intervención) el 02/04/2004 12:03:35
Saludos a todos y de antemano gracias, espero que me puedan echar la mano. Sucede que tengo una base de datos (en acces97), y una de las tablas erroneamente tiene definidos la mayoria de sus campos como long en lugar de double (con dos decimales). Lo que quiero hacer es cambiar el tipo a double y decimal places a 2, pero en un modulo porque son 200 campos y hacerlo a mano es muy pesado. No he logrado hacerlo ya que de entrada no me permite que el tabledef que defino en el modulo le pueda cambiar estas propiedades, y medio lo solucione creando una tabledef nueva, pero ahi solo le cambio a double y no logro como hacer que sea de 2 lugares decimales en el field "elcampo" que cree. La propiedad Decimal places me dice que no existe. Ya se que no hay problema en dejarlo como decimales Auto, pero me piden que sea de 2 decimales. Espero que alguien tenga el codigo de como lograrlo pues ya lei toda la ayuda al respecto y lo que viene ahi no me funciona.
Nuevamente gracias por su ayuda
ATTE
Antonio Salgado
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

Modificar tipo de campo

Publicado por Alejandro (4142 intervenciones) el 05/05/2023 00:07:19
Para cambiar el tipo de campo y establecer el número de decimales en una tabla de Access mediante código VBA, puede utilizar el siguiente código como ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub CambiarTipoCampo()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
 
    'Abrir la base de datos
    Set db = CurrentDb
 
    'Obtener la tabla que deseas modificar
    Set tdf = db.TableDefs("NombreTabla")
 
    'Recorrer los campos de la tabla
    For Each fld In tdf.Fields
        'Si el tipo de campo es Long, cambiarlo a Double y establecer DecimalPlaces a 2
        If fld.Type = dbLong Then
            tdf.Fields(fld.Name).Type = dbDouble
            tdf.Fields(fld.Name).Properties("DecimalPlaces") = 2
        End If
    Next fld
 
    'Guardar la tabla modificada
    tdf.RefreshLink
    Set tdf = Nothing
    Set db = Nothing
End Sub

En este ejemplo, el código recorre todos los campos de la tabla especificada y cambia el tipo de campo de Long a Double si corresponde. Además, establece el número de decimales en 2 utilizando la propiedad "DecimalPlaces".

Espero que esto le ayude a solucionar su problema.
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