Formularios para introducción de datos

De acuerdo al listado de “cosas a hacer” del post anterior vamos a crear los formularios para introducción de datos, empezando por el más simple que es el de crear y editar gèneros. Este quizás sea el que menos vamos a usar. Veamos su aspecto:

 

Aquí vemos el mismo al que llamamos fgenerocon sus tres objetos o controles, un textbox y dos botones con sus nombres. A continuaciòn el código comentado:

‘ Gambas class file

Private hconn As Connection   ‘primero las variables con su tipo
Private hresul As Result
Private editando As Boolean
Private gen As String

Public Sub runnew(data As Connection)  ‘metodo runnew o agregar nuevo

hconn = data
Me.ShowModal

End

Public Sub btncancelar_Click()

Me.Close()   ‘cerrar formulario

End

Public Sub btnaceptar_Click()

If editando Then ” comprobar si estamos editando o no
Try hresul[“genero”] = txtgenero.text
Try hresul.Update  ‘ actualizamos y cerramos el formulario
Me.Close()
Else
    If txtgenero.Text = “” Then  ‘comprobamos que haya algo escrito
Message.Warning(“Teclee un nombre”)

Else
gen = txtgenero.Text
Try hconn.EXEC(“insert into generos values (&1,&2)”, Null, gen)  ‘insertamos los datos

Me.Close()
Catch    ‘capturamos el error,si lo hay
Message.Error(“Imposible introducir los datos solicitados”)
Endif
Endif

End

Public Sub runedit(data As Result)  ‘metodo runnedit o modo de ediciòn

hresul = data
editando = True
txtgenero.text = hresul[“genero”]

Me.ShowModal

End

De acuerdo con el modo en que llamemos al formulario, se abrirá en modo edición(runedit) o en modo agregar (runnew). Esto lo veremos cuando llegamos a la interacción entre el formulario principal y los demás.

Habíamos hablado de la captura de errores, si observamos el texto azul subrayado, tenemos allí un ejemplo, comprobamos que el textbox género no esté vacío y si es así lanzamos un mensaje de error y detenemos la ejecución del código posterior. En nuestro caso no sería tan grave dicho error ya que la base de datos permite que ese dato sea nulo y como mucho nos dejará un registro en blanco, pero si la base no acepta datos vacíos en dicho campo, generará un error que puede trancarnos o cerrarnos el programa.

Vamos ahora al siguiente formulario, donde vamos a introducir tres tipos de datos con un tronco común, ya que tanto actores como actrices y directores tienen un nombre. Veamos el formulario.Su nombre frmactor.Como vemos es muy similar al otro , agregando además tres radiobuttom;  rbactor, rbdirector, rbactriz , que nos permiten seleccionar a que base de tabla vamos a cargar los datos. Su código es algo más complejo, pero nos permite con un solo IGU introducir datos en tres tablas distintas. Veamóslo:

Private hconn As Connection
Private hresul As Result
Private editando As Boolean

Public Sub runnew(data As Connection)

hconn = data
Me.ShowModal

End

Public Sub btncancelar_Click()

Me.Close()

End

Public Sub btnaceptar_Click()

  If editando Then
    Try hresul[“nombre”] = txtnombre.text
    Try hresul.Update
    Me.Close()
Else
If txtnombre.Text = “” Then
Message.Warning(“Teclee un nombre”)

Else
  If rbactor.value Then
        Try hconn.EXEC(“insert into actores values (&1,&2)”, Null, txtnombre.text)
        FMain.cargaactores
        Me.Close()
      Else If rbactriz.value Then
        Try hconn.EXEC(“insert into actrices values (&1,&2)”, Null, txtnombre.text)
        FMain.cargaactrices
        Me.Close()
      Else If rbdirector.Value
        Try hconn.EXEC(“insert into directores values (&1,&2)”, Null, txtnombre.text)
        FMain.cargadirectores
        Me.Close()
      Catch
        Message.Error(“Imposible introducir los datos solicitados”)
Endif
Endif
Endif

End

Public Sub runedit(data As Result)

hresul = data
editando = True
txtnombre.text = hresul[“nombre”]

Me.ShowModal

End

Si estamos editando,(texto azul) no precisamos decirle a que tabla introducir los datos, ya que estamos abriendo una u otra tabla para editar (método runnedit).

Si vamos a introducir datos nuevos debe evaluar  que radiobutton está activo para saber a cual de las tablas debe introducir los datos (texto en verde) Como vemos es una estructura de decisión if…else…endif, que ya hemos usado anteriormente.

Los Fmain.carga….posteriores a la sentencia sql recargan las tablas para actualizarlas con los datos introducidos.

En el próximo post veremos el de carga de películas y si no se hace muy largo empezaremos a ver la interacción entre formularios.

Anuncios
Esta entrada fue publicada en programación y etiquetada , , , . Guarda el enlace permanente.

4 respuestas a Formularios para introducción de datos

  1. DungAssange dijo:

    Oye yo quiero insertar 3 campos a mysql con form de gambas, uno es clave y las otras 2 son fecha y hora, pero quiero que fecha y hora se pongan automatico, es como pa control de asistencia , no se com hacer eso, tengo 3 dias con gambas 😉 gracias

    • dapeca2608 dijo:

      Diego,un par de consejos,date una vuelta por el foro de GAmbas-es(hay un enlace en el blog), descarga el libro de Campos y Redrejo para formarte una buena base.Se puede hacer de varias maneras, tambien puedes buscar en el mismo foro por campo tipo fecha y la función now. Tengo un ejemplo en algún lado, si lo encuentro te lo paso al correo. Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s