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.

1