viernes, 12 de diciembre de 2008

Bases de datos en Excel Parte II. Botón Nuevo.

Hasta el momento hemos creado el formulario Estudiantes, con sus cuadros de texto y botones de mover registro. Este debe tener ahora los objetos de operaciónes con registros, de tal manera que se deben crear los botones Nuevo, Insertar, Modificar, Borrar, entre otros.

Boton Nuevo

Para prepara los cuadros de texto para un nuevo registro, es necesario limpiar la informaciòn que existe en los cuadros de texto, es decir que las casillas deben quedar en blanco y activarse el frame1 (Recuadro Datos). Normalmente cuando nos movemos por los registros, no se pueden modificar, a no ser que el programador lo decida, como se hacía antes en Dbase. Para esto, cree un boton cuyo Name sea BotonNuevo y el caption sea Nuevo en el frame3 de acciones u operaciones y copie el siguiente código:

Dim Codigo As String, Existe As Boolean
If Me.BotonNuevo.Caption = "Nuevo" Then
'limpia textos
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
Me.TextBox4.Text = ""
Me.TextBox5.Text = ""
Me.TextBox6.Text = ""
Me.TextBox7.Text = ""
Me.TextBox8.Text = ""
Me.Frame1.Enabled = True
Me.Frame2.Enabled = FALSE
CanRegistros = CanRegistros + 1
Registro = CanRegistros
Me.BotonFinal.Value = True
Me.BotonNuevo.Caption = "Insertar"
me.textbox1.setfocus
Else
'insertando el nuevo código
Codigo = Me.TextBox1.Text
Existe = ExisteCodigo(CanRegistros, Codigo) 'Insertar el código que se menciona abajo
If Existe Or Codigo = "" Then 'condicional para el texto adecuado en caso de error
If Codigo = "" Then
MsgBox "Imposible crear el nuevo registro, el valor para el campo Código no
puede ser vacio.", vbCritical
Else
MsgBox "Imposible crear el nuevo registro, el valor para el campo Código ya
existe.", vbCritical
End If
CanRegistros = CanRegistros - 1
Registro = CanRegistros
Me.BotonFinal.Value = True
Else
'creando el registro ya que no existe
FilaEst = CanRegistros + 1
Hoja2.Cells(FilaEst, 1) = Me.TextBox1.Text
Hoja2.Cells(FilaEst, 2) = Me.TextBox2.Text
Hoja2.Cells(FilaEst, 3) = Me.TextBox3.Text
Hoja2.Cells(FilaEst, 4) = Me.TextBox4.Text
Hoja2.Cells(FilaEst, 5) = Me.TextBox5.Text
Hoja2.Cells(FilaEst, 6) = Me.TextBox6.Text
Hoja2.Cells(FilaEst, 7) = Me.TextBox7.Text
Hoja2.Cells(FilaEst, 8) = Me.TextBox8.Text
End If 'fin del existe codigo
Me.BotonNuevo.Caption = "Nuevo"
Me.Frame1.Enabled = False
Me.Frame2.Enabled = True
End If 'fin del caption del boton


Cabe resaltar que cuando se presiona el boton, cambia por la Opción Insertar y que cuando ya inserta, cambia la opción por Nuevo. Es un boton alternante entre Nuevo e Insertar. La palabra en rojo es una función, a ella se le pasa el número de registros que hay y el código a buscar para que regrese un valor de falso (False) o verdadero (true). Para crearla, haga click dereccho en la ventana de Proyecto e inserte un módulo cuyo nombre sea ModuloEstudiantes. Alli copie el siguiente código:

Function ExisteCodigo(UltimaFila As Long, Codigo As String) As Boolean

On Error Resume Next
Hoja2.ActivateHoja2.Range("A2:A" & UltimaFila).Select
Selection.Find(What:=Codigo, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If Err.Number <> 0 Then
ExisteCodigo = False
Else
ExisteCodigo = True
End If

End Function

No hay comentarios:

Datos personales