Automatización ACCESS
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 !!!!
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 !!!!
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"
oAccess.CurrentDB.Recordsets(0).AddNew
oAccess.CurrentDB.tabledefs(0).Fields(0).value = "Lopez"
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!!
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!!