Reporte de
prácticas del capítulo 24
Practica [24.01]
>> DML utilizando DAO:
actualizacion de una tabla mediante la técnica RAR.
Option
Explicit
Private
dbBase As Database
Private
rstVendedor As Recordset
Private
rstVenta As Recordset
Private Sub
ActivaPrimos()
cmdSoloVer.Enabled = False
cmdGuardar.Enabled = False
cmdEliminar.Enabled = False
txtIDVendedor.Text = ""
txtNombreVendedor.Text =
""
txtIDVendedor.Enabled = True
txtNombreVendedor.Enabled =
False
cmdBuscar.Enabled = True
cmdSoloVer.Default = False
cmdBuscar.Default = True
txtIDVendedor.SetFocus
End Sub
Private Sub ActivaNoPrimos()
txtIDVendedor.Enabled = False
txtNombreVendedor.Enabled = True
cmdBuscar.Enabled = False
cmdBuscar.Default = False
cmdSoloVer.Default = True
txtNombreVendedor.SetFocus
End Sub
Private Sub ActivaExistente()
cmdSoloVer.Enabled = True
cmdGuardar.Enabled = True
cmdEliminar.Enabled = True
End Sub
Private Sub ActivaNuevo()
cmdSoloVer.Enabled = True
cmdGuardar.Enabled = True
cmdEliminar.Enabled = False
End Sub
Private Sub cmdBuscar_Click()
If txtIDVendedor.Text =
"" Then
'Proceso a realizar
MsgBox "No omitir"
txtIDVendedor.SetFocus
Call ActivaPrimos
Exit Sub
End If
Call ActivaNoPrimos
rstVendedor.Index =
"pkVendedor"
rstVendedor.Seek "=",
txtIDVendedor.Text
If rstVendedor.NoMatch Then
Call ActivaNuevo
Else
Call ActivaExistente
With rstVendedor
txtIDVendedor.Text = .Fields("IDVendedor")
txtNombreVendedor.Text = .Fields("NombreVendedor")
End With
End If
End Sub
Private Sub cmdEliminar_Click()
rstVenta.Index =
"fkVendedor"
rstVenta.Seek "=", txtIDVendedor.Text
If rstVenta.NoMatch Then
rstVendedor.Delete
Else
MsgBox "Imposible:Tiene
datos relacionados(Venta)", _
vbCritical
End If
Call ActivaPrimos
End Sub
Private Sub cmdGuardar_Click()
If rstVendedor.NoMatch Then
rstVendedor.AddNew
With rstVendedor
.Fields("IDVendedor") = txtIDVendedor.Text
.Fields("NombreVendedor") = txtNombreVendedor.Text
End With
rstVendedor.Update
Else
rstVendedor.Edit
With rstVendedor
.Fields("NombreVendedor") = txtNombreVendedor.Text
End With
rstVendedor.Update
End If
Call ActivaPrimos
End Sub
Private Sub cmdSoloVer_Click()
Call ActivaPrimos
End Sub
Private Sub Form_Activate()
'Abre los orígenes de datos
Set dbBase =
OpenDatabase("A:\Ventas.mdb")
Set rstVendedor =
dbBase.OpenRecordset("Vendedor")
Set rstVenta =
dbBase.OpenRecordset("Venta")
'Carga la imagen del botón
cmdBuscar.Picture =
LoadPicture()
Call ActivaPrimos
End Sub
Private Sub Form_Deactivate()
rstVendedor.Close
rstVenta.Close
bdBase.Close
End Sub
Conclusiones:
Esta
practica nos enseño la manera de guardar o eliminar registros de la base de
datos manipulando las claves primarias.
Practica [24.02]
>> DML utilizando DAO: metodos de
movimiento entre registros.
Option Explicit
Dim dbBase As Database
Dim rsVendedor As Recordset
Dim intRecNo As Integer
Private Sub Actualiza()
lblRegistros.Caption =
Str(intRecNo%) & "/" & _
Str(rsVendedor.RecordCount)
txtIDVendedor.Text =
rsVendedor.Fields("IDVendedor")
txtNombreVendedor.Text =
rsVendedor.Fields("NombreVendedor")
End Sub
Private Sub cmdAnterior_Click()
If intRecNo% = 1 Then
Beep
Else
rsVendedor.MovePrevious
intRecNo% = intRecNo% - 1
Call Actualiza
End If
End Sub
Private Sub cmdPrimero_Click()
rsVendedor.MoveFirst
intRecNo% = 1
Call Actualiza
End Sub
Private Sub cmdSiguiente_Click()
If ineRecNo% =
rsVendedor.RecordCount Then
Beep
Else
rsVendedor.MoveNext
intRecNo% = intRecNo% + 1
Call Actualiza
End If
End Sub
Private Sub cmdUltimo_Click()
rsVendedor.MoveLast
intRecNo% =
rsVendedor.RecordCount
Call Actualiza
End Sub
Private Sub Form_Activate()
Set dbBase =
OpenDatabase("A:\Ventas.mdb")
Set rsVendedor =
dbBase.OpenRecordset("Vendedor")
If rsVendedor.RecordCount = 0
Then
MsgBox "Nada que
ver"
dbBase.Close
End
End If
intRecNo% = 1
Call Actualiza
End Sub
Conclusiones:
Esta
practica nos mostró las tareas de movimiento del Recordset y la manera de
usarlas para poder visualizar los registros contenidos en nuestra base de
datos.
Practica [24.03]
>> DML utilizando DAO: búsqueda
basada en criterios.
Option
Explicit
Dim dbBase As Database
Dim rstVendedor As Recordset
Private
Sub cboVendedor_Click()
With rstVendedor
.FindFirst
"NombreVendedor = " & Chr(34) & _
cboVendedor.List(cboVendedor.ListIndex) & Chr(34)
lblVendedor.Caption =
.Fields("IDVendedor")
End With
End
Sub
Private
Sub cboVendedor_KeyPress(KeyAscii As Integer)
Beep
KeyAscii = 0
End
Sub
Private
Sub cmdBuscar_Click()
With rstVendedor
.FindFirst "InStr(1,
NombreVendedor," & _
Chr(34) &
Trim(txtPatron.Text) & Chr(34) & ") > 0"
If .NoMatch Then
MsgBox "No
coincide ningún dato"
Else
lblVendedor.Caption =
.Fields("IDVendedor")
End If
End With
End
Sub
Private
Sub Form_Load()
Set dbBase =
OpenDatabase("A:\Ventas.mdb")
Set rstVendedor =
dbBase.OpenRecordset("Vendedor", _
dbOpenDynaset)
With rstVendedor
Do While Not .EOF
lstVendedor.AddItem
.Fields("nombreVendedor")
.MoveNext
Loop
.MoveFirst
Do While Not .EOF
cboVendedor.AddItem
.Fields("NombreVendedor")
.MoveNext
Loop
cboVendedor.Text =
cboVendedor.List(0)
End With
End
Sub
Private
Sub lstVendedor_Click()
With rstVendedor
.FindFirst
"NombreVendedor = " & _
Chr(34) & lstVendedor.List(lstVendedor.ListIndex)
& _
Chr(34)
lblVendedor.Caption =
.Fields("IDVendedor")
End With
End
Sub
Conclusiones:
Esta
practica nos muestra una forma de buscar (no por medio de claves) y visualizar
los registros de nuestro Recordset.