Parte 4
Capítulo 24. Lenguaje de Manipulación de Datos y DAO.
Actualizaciones a nivel tabla y a nivel base de datos.
OpenDatabase, OpenRecordset y Close.
AddNew, Edit, Update y Delete.
Almacena la dirección en la cual se encuentra el archivo a usar.
OpenDatabase(Archivo)
Ejemplo: Dim dbBase As Database
dbBase = OpenDatabase(App.Path & "\" & "Ventas.mdb")
OpenRecordset(Tabla,Tipo)
Ejemplo: Dim dbBase As Database
Dim rstVendedor As Recordset
dbBase = OpenDatabase(App.Path & "\" & "Ventas.mdb")
Set rstVendedor = OpenRecordset("Vendedor")
Table -> dbOpenTable
Dynaset -> dbOpenDynaset
Snapshot -> dbOpenSnapshot
Forward-only -> dbOpenForwardOnly
Dynamic -> dbOpenDynamic
Cuando el Recordset esta en modo de edición, Visual Basic permite modificar el contenido del registro activo.
El motor de base de datos permite apuntar a un registro a la vez, por cada Recordset que se tenga abierto; al registro que esta apuntado se le conoce como registro activo.
Permite agregar un registro a un Recordset, estableciéndolo como registro activo y dejándolo en modo de edición.
Sirve para poner en modo de edición al registro activo.
Transfiere los cambios realizados en el registro activo y en el Recodset al almacen de datos.
Modifica el almacen de datos de tal forma que el registro sea eliminado.
AddNew y Edit.
El metodo Seek permite buscar una clave dentro de un archivo, modificando la propiedad NoMatch en caso de que se encuentre o no la clave buscada.
La propiedad Index permite definir cual es el indice sobre el que se hara la búsqueda.
La propiedad NoMatch determina si la ultima búsqueda realizada no encontro ocurrencias coincidentes (True). En caso de que la búsqueda termine con resultados satisfactorios, el valor de esta propiedad en (False). Esta propiedad se actualiza en tiempo de ejecución.
Recordset.MoveFirst
Recordset.MoveLast
Recordset.MovePrevious
Recordset.MoveNext
Seek solo busca claves, mientras Find no tiene esa restricción.
El Recordset debe ser de tipo Dynaset.
FindFirst
FindNext
FindPrevious
FindLast
La forma de evaluar el éxito de los metodos Find es similar a Seek
Ejemplo: Dim dbBase As Database
Dim rstVendedor As Recordset
dbBase = OpenDatabase(App.Path & "\" & "Ventas.mdb")
Set rstVendedor = OpenRecordset("Vendedor", dbOpenDynaset)
RstVendedor.FindFirst "IDVendedor > 100"
If rstVendedor.NoMatch Then
MsgBox "No hay un ID mayor a cien"
Else
MsgBox "Ya hay un ID mayor a cien"
End If
BdBase.Close
Se presenta cuando intenta definir un Recordset vinculándolo a una tabla o consulta que no existe definida en el almacen de datos. Para solucionarlo, antes de realizar asignaciones a las referencias al almacen de datos , asegurese de estar en modo de edición