Aclaro,porque quizá en otros países no sea igual, que aquí llamamos fechas a las etapas del campeonato de fútbol. Había quedado pendiente crear el formulario donde ver en la fecha y desde el cual poder buscar los resultados de tu equipo o de determinada fecha.
Bien, antes que nada , recordemos que en el formulario principal hay un botón para guardar las fechas en la tabla al efecto que se habilita luego de sumar los puntos. Este es su código:
Public Sub btnfecha_Click()
guardarfecha(lbfechas, lb1, vb1, lb2, vb3)‘parámetros entre paréntesis
guardarfecha(lbfechas, lb3, vb5, lb4, vb7)
guardarfecha(lbfechas, lb5, vb9, lb6, vb11)
guardarfecha(lbfechas, lb7, vb13, lb8, vb15)
guardarfecha(lbfechas, lb9, vb17, lb10, vb19)
guardarfecha(lbfechas, lb11, vb21, lb12, vb23)
guardarfecha(lbfechas, lb13, vb25, lb14, vb27)
guardarfecha(lbfechas, lb15, vb29, lb16, vb31)
End
Lo que hace es lanzar el procedimiento guardarfecha, pasándole los distintos parámetros.
Rebobinando un poco, para evitar reescribir código creamos un procedimiento o función al que luego le pasamos los parámetros. Veamos ahora el código del mismo:
Public Sub guardarfecha(lfecha As Listbox, lloc As Listbox, gloc As Valuebox, lvis As Listbox, gvis As Valuebox)‘Aqui declaramos los parámetros por tipo
‘Primero declaramos las variables
Dim fecha As String
Dim local As String
Dim glocal As Integer
Dim visita As String
Dim gvisita As Integer
‘Luego asignamos valores a las variables
fecha = lfecha.Current.text
local = lloc.Current.text
glocal = gloc.value
visita = lvis.Current.text
gvisita = gvis.Value
‘Finalmente insertamos los valores en la base de datos
Try hconn.exec(“Insert into Fechas values(&1,&2,&3,&4,&5,&6)”, Null, fecha, local, glocal, visita, gvisita)
bloqueabotones ‘ y bloqueamos los botones
End
Los comentarios, resaltados en rojo explican lo que hace cada parte del programa, el null en azul es necesario para que el campo autonúmerico rowid se incremente en una unidad en cada nuevo registro guardado.
Vamos ahora a crear el formulario para ver las tablas y realizar las búsquedas. Como ya es l tercer proyecto no vamos a explicar ni como agregar el formulario ni como “dibujar los controles. En la imagen hemos incluido los nombres y en algún caso el tipo de control.

Form 1 en tiempo de diseño
Me quedó con el nombre por defecto, Form1,pero sería un nombre más adecuado frmfechas. Lo abrimos desde fmain haciendo click en btnlistar (listar fechas).
Ahora el código de form1:
Private hconn As Connection
Private hresu As Result ‘ Gambas class file
Public Function ConectarBase() As Boolean
If hconn <> Null Then Return False
hconn = New Connection
hconn.Host = User.Home &/ “.goles1″
hconn.name = “Futbol”
hconn.type = “sqlite3″
Try hconn.Open()
If Error Then
hconn = Null
Message.Error(“error al conectar con la base”)
Return True
Endif
Return False
End
Public Sub Form_Open()
Dim palabra As String
tabla.Clear ‘limpiar tabla
If ConectarBase() Then Return
tabla.Columns.Count = 6
tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100
hresu = hconn.Exec(“Select * from Fechas order by Fecha ASC”)
Do While hresu.Available
palabra = hresu["rowid"]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu["Local"]
tabla[palabra][2] = hresu["Glocal"]
tabla[palabra][3] = hresu["Visitante"]
tabla[palabra][4] = hresu["Gvisita"]
tabla[palabra][5] = hresu["Fecha"]
hresu.MoveNext()
Loop
FMain.listado(lbequipo)
modcargar.cargar2
End
Public Sub btnbuscar_Click()
Dim palabra As String
Dim filtro As String
tabla.Clear ‘limpiar tabla
If ConectarBase() Then Return
tabla.Columns.Count = 6
tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100
filtro = lbequipo.Current.Text
hresu = hconn.Exec(“Select * from Fechas where Local like ‘” & filtro & “‘ Or Visitante Like ‘” & filtro & “‘”) ‘consulta sql
Do While hresu.Available
palabra = hresu["rowid"]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu["Local"]
tabla[palabra][2] = hresu["Glocal"]
tabla[palabra][3] = hresu["Visitante"]
tabla[palabra][4] = hresu["Gvisita"]
tabla[palabra][5] = hresu["Fecha"]
hresu.MoveNext()
Loop
End
Public Sub btnreset_Click()
Form_Open
End
Public Sub btnbuscarfecha_Click()
Dim palabra As String
Dim filtro As String
tabla.Clear ‘limpiar tabla
If ConectarBase() Then Return
tabla.Columns.Count = 6
tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100
filtro = lbfechas.Current.Text
hresu = hconn.Exec(“Select * from Fechas where Fecha like ‘” & filtro & “‘”) ‘consulta sql
Do While hresu.Available
palabra = hresu["rowid"]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu["Local"]
tabla[palabra][2] = hresu["Glocal"]
tabla[palabra][3] = hresu["Visitante"]
tabla[palabra][4] = hresu["Gvisita"]
tabla[palabra][5] = hresu["Fecha"]
hresu.MoveNext()
Loop
End
Public Sub Btncerrar_Click()
Me.Close
End
Vamos a explayarnos sobre algunos fragmentos de código que aparecen aquí y no habíamos visto antes. Dados que los equipos alternan la localía , cuando buscamos los resultados de un equipo debemos buscar en ambos campos, tenemos una sentencia sql con dos variables a considerar unidas por el operador lógico “or”, que literalmente significa “o”.
hresu = hconn.Exec(“Select * from Fechas where Local like ‘” & filtro & “‘ Or Visitante Like ‘” & filtro & “‘”)
Creo que el resto del código se explica bastante por sí solo, salvo la sentencia modcargar.cargar2, donde modcargar es un módulo del programa y modcargar 2 es una función escrita en el misma. Veamos el código:
Public Sub cargar()
FMain.lbfechas.Add(“Elige fecha”)
FMain.lbfechas.Add(“fecha 01″)
FMain.lbfechas.Add(“fecha 02″)
FMain.lbfechas.Add(“fecha 03″)
FMain.lbfechas.Add(“fecha 04″)
FMain.lbfechas.Add(“fecha 05″)
FMain.lbfechas.Add(“fecha 06″)
FMain.lbfechas.Add(“fecha 07″)
FMain.lbfechas.Add(“fecha 08″)
FMain.lbfechas.Add(“fecha 09″)
FMain.lbfechas.Add(“fecha 10″)
FMain.lbfechas.Add(“fecha 10″)
FMain.lbfechas.Add(“fecha 12″)
FMain.lbfechas.Add(“fecha 13″)
FMain.lbfechas.Add(“fecha 14″)
FMain.lbfechas.Add(“fecha 15″)
End
Public Sub cargar2()
Form1.lbfechas.Add(“Elige fecha”)
Form1.lbfechas.Add(“fecha 01″)
Form1.lbfechas.Add(“fecha 02″)
Form1.lbfechas.Add(“fecha 03″)
Form1.lbfechas.Add(“fecha 04″)
Form1.lbfechas.Add(“fecha 05″)
Form1.lbfechas.Add(“fecha 06″)
Form1.lbfechas.Add(“fecha 07″)
Form1.lbfechas.Add(“fecha 08″)
Form1.lbfechas.Add(“fecha 09″)
Form1.lbfechas.Add(“fecha 10″)
Form1.lbfechas.Add(“fecha 10″)
Form1.lbfechas.Add(“fecha 12″)
Form1.lbfechas.Add(“fecha 13″)
Form1.lbfechas.Add(“fecha 14″)
Form1.lbfechas.Add(“fecha 15″)
End
Cualquier duda, contestaré a la brevedad posible desde el correo de contacto. Hasta la próxima.