none
Error al crear un campo en tabla Access, en tiempo de ejecución RRS feed

  • Pregunta

  • Buenas. Quiero crear campos en una tabla Access. Para ello estoy usando el siguiente método, que funciona bien hasta la línea de asteriscos. Lo que pretendo es que el campo que creo no sea "Requerido", y para ello trato de poner la propiedad "Nullable" a True, pero me da el siguiente error:

    "-2147217887 - La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo."

    ¿Alguna idea?


       Dim ConnMASTER    As New ADODB.Connection
       Dim ADOXcat       As New ADOX.Catalog
       Dim tblFichas     As ADOX.Table
    
    
       ConnMASTER.CursorLocation = adUseClient
       ConnMASTER.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & glbRutaBDD & "\MASTER.mdb"
    
       ADOXcat.ActiveConnection = ConnMASTER.ConnectionString
       Set tblFichas = ADOXcat.Tables("FICHAS2")
    
    
       tblFichas.Columns.Append "MiCampo", 130, 50    'Campo TEXTO, 50
    
    
       tblFichas("MiCampo").Properties("DESCRIPTION") = rstFichas("DESCRIPTION")
       tblFichas("MiCampo").Properties("Jet OLEDB:Allow Zero Length") = True
    
       tblFichas("MiCampo").Properties("Nullable") = True   '****************
    
    

    jueves, 5 de septiembre de 2013 8:24

Respuestas

  • Lo conseguí, y aquí queda por si alguien lo necesita:

       Dim ADOXcat       As New ADOX.Catalog
       Dim tblFichas     As ADOX.Table  
    
    
    ...
    
    
       Set colCampo = New ADOX.Column
       Set colCampo.ParentCatalog = ADOXcat
       colCampo.Name = cNomcampo
       colCampo.Type = nTipoVar
       colCampo.DefinedSize = nAncho
       colCampo.Attributes = adColNullable
       
       tblFichas.Columns.Append colCampo
       ADOXcat.Tables.Refresh

    • Marcado como respuesta Corchopan viernes, 6 de septiembre de 2013 7:41
    viernes, 6 de septiembre de 2013 7:41

Todas las respuestas

  • Dim ConnMASTER    As New ADODB.Connection
       Dim ADOXcat       As New ADOX.Catalog
       Dim tblFichas     As ADOX.Table
       Dim col
    
       ConnMASTER.CursorLocation = adUseClient
       ConnMASTER.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & glbRutaBDD & "\MASTER.mdb"
    
       ADOXcat.ActiveConnection = ConnMASTER.ConnectionString
       Set tblFichas = ADOXcat.Tables("FICHAS2")
    
    
       tblFichas.Columns.Append "MiCampo", 130, 50    'Campo TEXTO, 50
    
         Set col = cat.Tables("FICHAS2").Columns("MiCampo")
         col.Properties("Nullable") = True
    
    
       col.Properties("DESCRIPTION") = rstFichas("DESCRIPTION")
       col.Properties("Jet OLEDB:Allow Zero Length") = True
    
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos



    • Editado Sergio Parra jueves, 5 de septiembre de 2013 10:02
    jueves, 5 de septiembre de 2013 9:57
  • Gracias por responder.

    Tampoco funciona, me da el mismo error. ¿Tendrá que ver algo la ConnectionString?

    jueves, 5 de septiembre de 2013 17:52
  • Lo conseguí, y aquí queda por si alguien lo necesita:

       Dim ADOXcat       As New ADOX.Catalog
       Dim tblFichas     As ADOX.Table  
    
    
    ...
    
    
       Set colCampo = New ADOX.Column
       Set colCampo.ParentCatalog = ADOXcat
       colCampo.Name = cNomcampo
       colCampo.Type = nTipoVar
       colCampo.DefinedSize = nAncho
       colCampo.Attributes = adColNullable
       
       tblFichas.Columns.Append colCampo
       ADOXcat.Tables.Refresh

    • Marcado como respuesta Corchopan viernes, 6 de septiembre de 2013 7:41
    viernes, 6 de septiembre de 2013 7:41