Hola amigos, la ayuda que hoy le pido es como puedo agregar una campo autonumérico a una tabla existente pero mediante código o una consulta SQL. Gracias MEDIANTE DAO Y DDL POR JUAN M. AFAN DE RIBERA ============================================= DAO --- Sub crearAutonumericoDAO(nomTabla As String, nomCampo As String) Dim db As DAO.Database Dim tdf As DAO.TableDef Dim fld As DAO.Field Set db = CurrentDb Set tdf = db.TableDefs(nomTabla) Set fld = tdf.CreateField(nomCampo, dbLong) fld.Attributes = dbAutoIncrField tdf.Fields.Append fld Set fld = Nothing Set tdf = Nothing Set db = Nothing End Sub esta sub es sólo de ejemplo, naturalmente. Deberías proveerla de una rutina de errores e incluso convertirla en una función que devolviera un valor booleano que indicara si ha tenido éxito o no, por ejemplo. Eso ya va a gustos... DDL --- mediante código creo que lo más sencillo es hacerlo mediante DDL, por ejemplo Dim cadSQL as string cadSQL = "ALTER TABLE Tabla " _ & "ADD COLUMN Campo_Autonumerico COUNTER" CurrentDb.Execute cadSQL MEDIANTE ADO POR BUHO ===================== Si lo haces mediante mi codigo, activa a la Microsoft ADO Ext. 2.X DDL and Security en el editor de VBA Además, si la tabla pertenece a la misma MDB que corre el codigo, activa la conexión de esta forma: cat.ActiveConnection = CurrentProject.Connection Sub ADOCreaAutoIncrColumn() Dim cat As New ADOX.Catalog Dim col As New ADOX.Column ' ABRE EL CATALOGO cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=.\basedatos.mdb;" ' Crea la nueva columna autonumerica With col .Name = "CampoId" .Type = adInteger Set .ParentCatalog = cat .Properties("AutoIncrement") = True End With ' Anexiona la columna a la tabla cat.Tables("Contacts").Columns.Append col Set cat = Nothing End Sub