RE:Crear un campo clave con DAO
Yo utilizo la libreria DAO 3.6, por cualquier cosa....
Espero que este codigo te sirva
Private Sub AgregaCampoLlave()
Dim dtbs As Database
Dim indx
Dim tabDef
Dim fld
Set dtbs = OpenDatabase("D:\otros\SisCtasCYP\Datos\BDCTASCYP.mdb")
Set tabDef = dtbs.TableDefs("Prueba")
' Si el Indice Existe debe eliminarlo con la siguiente linea
'dtbs.TableDefs("Clientes").Indexes.Delete "PKCODIGOPR"
' Crea el Indice
Set indx = tabDef.CreateIndex("PKCODIGOPR")
' Indica si es Unico
indx.Unique = True
'Indica si es la Llave Primaria
indx.Primary = True
' Agrega las Columnas al indice
' Si fuera mas de uno pues haces un arreglo y le agregas las columnas
' como en las lineas siguientes antes de agregarlo a la tabla
Set fld = indx.CreateField("Codigo")
'Si Desearas ordenarlo de forma descendente le puedes poner esta instrucción
'fld.Attributes = fld.Attributes Or dbDescending
indx.Fields.Append fld
' Agrega el Indice y la llave primaria a la tabla
tabDef.Indexes.Append indx
End Sub