Automatización ACCESS

sanpablo
18 de Abril del 2005
Hola a todos!!!
Ya me falta muy poco para lograr lo que quiero. Lo que necesito es acceder a una tabla de Access y agregarle registros (desde VFP obviamente)
Hasta aqui llegue:
oAccess = Createobject("Access.Application")
oAccess.OpenCurrentDatabase('C:TEST.MDB')
oAccess.CurrentDB.tabledefs('ALUMNO').OpenRecordset
con este último creo que la tabla ya estaría abierta. Ahora lo que no puedo lograr que funcione son estos comandos:
oAccess.CurrentDB.Recordsets('ALUMNO').AddNew
oAccess.CurrentDB.tabledefs('ALUMNO').Fields("APEL").value = "Lopez"
Que es lo que estoy haciendo mal, o que tengo que agregar?

Gracias !!!!

sgomez
18 de Abril del 2005
Probá de usar el indice en lugar del nombre de tabla/campo, por ejemplo:

oAccess.CurrentDB.Recordsets(0).AddNew
oAccess.CurrentDB.tabledefs(0).Fields(0).value = "Lopez"

sgomez
18 de Abril del 2005
Acá te mando un ejemplo para hacer lo mismo pero con ADO.

ors = Create("adodb.Recordset")
ors.open("select * from ALUMNO","Provider=Microsoft.Jet.OLEDB.4.0;Data Source='''C:TEST.MDB'",2,2)
ors.addnew
ors.fields('APEL').value="SS"
ors.update
release ors

Y listo!! Como verás es mas sencillo. Otra ventaja muuuy importante es que te tira error si el nuevo registro no cumple con las reglas de validacion que puedas llegar a tener en la mdb, duplicidad de clave unica, etc. Obviamente para mostrarle el mensaje al operador tenés que capturar el error con ON ERROR.

Suerte!!