Un pequeño cambio a la base de datos

Cuando comencé a crear el procedimiento para mostrar las fechas jugadas, encontré  un error al querer cargar la tabla correspondiente. Me aparecía un error en sql, diciendo que el índice estaba repetido. La verdad me costó bastante encontrar el error,pelo lo conseguí. El problema que al crear las tablas no les había puesto un índice y sqlitebrowser había creado un índice único para ambas tablas.

Me fue imposible modificarlas así que las creé de nuevo agregando un nuevo campo a cada una, id para la tabla equipos e rowid para la tabla fechas. Ambas son autonuméricas y , por poco lógico que resulte en la sentencia Insert into hay que darles un valor de Null(nulo) para que se llenen automáticamente.

Bien, habíamos quedado en el punto de crear el procedimiento para sumar puntos y goles. Vamos a necesitar abrir los registros uno por uno en modo edición para poder hacerlo.Vamos a agregar un nuevo formulario al que llamaremos fdata. Veamos su aspecto en tiempo de diseño con todos sus controles visibles…

fdata1 en tiempo de diseño

Y en tiempo de ejecución mostrando solo el label…

fdata1 en tiempo de ejecución

Los controles quedan ocultos puesto que el usuario no debe interactuar con ellos, forman parte de un proceso automatizado.
Los controles a colocar son :5 textbox (txtequipo,txtpuntos,txtgf,txtgc,txtdif) ,
3 valuebox(vbgf,vbgc,vbpuntos) un control timer y un label. A todos los controles, excepto al label y al timer hay que ponerle su propiedad visible a false desde la ventana de propiedades. El label porque es el único que va a quedar visible y el timer porque es invisible de por sí. Al timer le ponemos su propiedad enabled a True y  le damos un delay de 200 milisegundos. A continuación el código de fdata1:

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

  Public Sub runedit(data As Result)

hresul = data
editando = True
txtequipo.text = hresul[“Equipo“]
txtpuntos.text = hresul[“Puntaje“]
txtgf.text = hresul[“Gf”]
Txtgc.text = hresul[“Gc“]
txtdif.text = hresul[“zdif“]
Me.ShowModal

    End

Public Sub Timer1_Timer()
Dim dif As Integer
If editando Then

Try hresul[“Equipo“] = txtequipo.text
Try hresul[“Puntaje“] = Val(txtpuntos.text) + vbpuntos.value
Try hresul[“Gf“] = Val(txtgf.text) + vbgf.value
Try hresul[“Gc“] = Val(Txtgc.text) + vbgc.Value
Try hresul[“zdif“] = (Val(txtgf.text) + vbgf.value) – (Val(Txtgc.text) + vbgc.Value)
Try hresul.Update

Else
Endif

Me.Close()
Catch
Message.Error(“imposible guardar datos“)
End

Como siempre declaramos primero las variables, luego el procedimiento runedit(que se dispara desde el formulario principal, lo veremos más adelante)nos carga los valores para el equipo correspondiente, necesarios para realizar las cuentas.

Luego el evento timer nos dispara la actualización, suma puntos, goles a favor y en contra, hace la diferencia de goles y carga todo en la tabla, cerrando posteriormente el formulario.

En el próximo post veremos como interactua esto con el formulario principal.

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

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