Hola gente, tengo la siguiente situación y me supera en conocimientos.
En un formulario tengo 109 textbox en diferentes pestañas de un tabpanel, todos están vinculados, quiero decir son los diferentes datos de --en este caso-- referencias bibliográficas, no se usan todos sino que se llenan según el tipo de referencia.
El tema es que al crear una nueva entrada se hace necesario borrar la info contenida en los textbox (repito la info se corresponde con el tipo de entrada bibliográfica), los procesos de guardar, modificar y borrar (el registro) son muy rápidos, pero generar una nueva entrada es una tortura el tiempo que hay que esperar, entiendo que esto se debe a que la función recorre uno a uno los textbox para dejarlo vacio, ¿existe método de acelerar esto?
Coloco una parte del código que limpia los textbox, es de manual
Código:
Public Function LimpiarCamposBIB()
' Limpiamos los campos
txtID.Text = ""
txtETIQ.Text = ""
txtKEYWORDS.Text = ""
txtCROSSREF.Text = ""
txtCLAVEbib.Text = ""
txtTITLE.Text = ""
txtRELATED.Text = ""
' y sigue la lista
Esta es la función que llamo para hacer una nueva entrada
Código:
Public Sub BtnNuevoBib_Click()
BtnNuevoBib.Visible = False
BtnEliminarBib.Visible = False
BtnRefrescarBib.Visible = False
btnGuardar.Visible = True
btnGuardarCambios.visible = False
btnAgregarCitationKey.Enabled = True
ToolPanel1.Index = 0
Dim Idn As Integer
LimpiarCamposBIB() ' Limpiamos los campos
txtTMPbiblio.Clear 'limpiamos en textarea temporal
txtTMPbiblio.SetFocus() 'hacemos foco en el textarea para pegar el texto de la referencia a construir
' Obtenemos el último ID y sumamos +1 para el nuevo registro
Contenido = Conn.Exec("SELECT MAX(id) FROM bibtex LIMIT 1")
' Si no hay ninguna entrada entonces arrancamos desde 0
If Contenido["MAX(id)"] = Null Then
Idn = 0
Else
Idn = CInt(Contenido["MAX(id)"]) + 1
Endif
txtID.Text = Idn
txtCLAVEbib.Text = "@" & Idn & "-" 'colocamos el prefijo de la clave bib
txtKEYWORDS.Text = "," & BaseName & "," 'colocamos el key con el nombre del archivo
Mostrar_ListaBIB()
End
Saludos y gracias de antemano
Alberto
Me respondo a mi mismo y para no cambiar el contenido de la pregunta original, hice otras pruebas y puedo confirmar que el problema está en la consulta a la base de datos, si bien el id tiene índice, sospecho que la base está mal diseñada.
Esto me pasa porque el programa se pensó con una idea y fue creciendo (y la base también) y ahora debo parar la pelota y hacer un rediseño completo.
Saludos
PD: como dice Shordi en uno de sus últimos videos «quiere a tu base de datos, mimala si es necesario».