Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas con numero de registros en una tabla

Estas en el tema de Problemas con numero de registros en una tabla en el foro de Visual Basic clásico en Foros del Web. hola. aqui tengo unos codigos que solo me permiten guardar 5 registros en una tabla. eso esta bien, por que es lo que quiero. pero, ...
  #1 (permalink)  
Antiguo 15/11/2008, 22:39
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Problemas con numero de registros en una tabla

hola. aqui tengo unos codigos que solo me permiten guardar 5 registros en una tabla. eso esta bien, por que es lo que quiero. pero, cuando me saldo del formulario y vuelvo a guardar me guarda 5 mas. entonces quisiera que me ayuden a solucionar esto. ya que por un lado esta bien, por que me guarda solo los registros que yo quiero en este caso. son solo 5.. pero no me deberia de seguir gusrdando asi salga y entre muchas veces al fotmulario.

este es en el boton guardar.

Private Sub guardar_Click(index As Integer)
Select Case index
Case 0
'Agregar
If (iContadorRegistro <= 5) Then
'puedo agregar...
deduc2.Recordset.AddNew
deduc2.Recordset(0) = Trim(Text1.Text)
deduc2.Recordset(1) = Abs(Text2.Text)
deduc2.Recordset.Update
deduc2.Refresh
MsgBox "Datos Almacenados Satisfactoriamente", vbInformation, "Guardado"

'Y se incrementa para la próxima...
iContadorRegistro = iContadorRegistro + 1

' se limpian los datos
Text1.Text = ""
Text2.Text = ""

'se almacena la cantidad de registros.
SaveSetting App.EXEName, "CONTADOR", "Registros", iContadorRegistro

Else
'No se pueden agregar...
MsgBox "Imposible agregar registros, cantidad máxima permitida a sido superada.", vbInformation, "Imposible guardar"
End If
Case 1
'Cerrar
End
End Select
iContadorRegistro = CInt(GetSetting(App.EXEName, "CONTADOR", "Registros"))
'End If
End Sub


esto lo coloque en el load
On Error Resume Next
'se inicializan los valores...
Dim iContador As Integer
iContador = CInt(GetSetting(App.EXEName, "CONTADOR", "Registros"))
If (iContador <= 5) Then
iContadorRegistro = iContador
Else
iContadorRegistro = 0
End If

'************************************************* *********
Option Explicit
'Este es el contador de registros...
Private iContadorRegistro As Integer


espero sus opiniones. gracias
  #2 (permalink)  
Antiguo 15/11/2008, 22:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problemas con numero de registros en una tabla

Teoricamente debería funcionar de la forma como tienes, ¿cuál es el comportamiento esperado y qué ocurre en el momento? ¿se produce algún error?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/11/2008, 03:23
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Problemas con numero de registros en una tabla

Cita:
Iniciado por principefreddy Ver Mensaje
hola. aqui tengo unos codigos que solo me permiten guardar 5 registros en una tabla. eso esta bien, por que es lo que quiero. pero, cuando me saldo del formulario y vuelvo a guardar me guarda 5 mas. entonces quisiera que me ayuden a solucionar esto. ya que por un lado esta bien, por que me guarda solo los registros que yo quiero en este caso. son solo 5.. pero no me deberia de seguir gusrdando asi salga y entre muchas veces al fotmulario.

...
espero sus opiniones. gracias
Hola, yo creo que el problema está en que guardas en el registro una unidad más que registros tiene la tabla:

'Agregar
If (iContadorRegistro <= 5) Then
'puedo agregar...
'...
'Y se incrementa para la próxima... (es la quinta vez)
iContadorRegistro = iContadorRegistro + 1
' ahora iContadorRegistro vale 6
' ...
'se almacena la cantidad de registros.
SaveSetting App.EXEName, "CONTADOR", "Registros", iContadorRegistro


y al cargar de nuevo el form:
iContador = CInt(GetSetting(App.EXEName, "CONTADOR", "Registros"))
If (iContador <= 5) Then
iContadorRegistro = iContador
Else
iContadorRegistro = 0
End If

como el valor guardado en el registro era 6, ahora pasa a ser 0

Conclusión: Guarda primero la variable iContadorRegistro y después le sumas la unidad.

  #4 (permalink)  
Antiguo 16/11/2008, 05:44
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas con numero de registros en una tabla

hola. david en el forma load le coloque esto: iContadorRegistro = 5 en vez de cero que fuera cinco. pero la primera vez me guarda los 5 registros y esta bien. si me salgo y entre solo me guarda uno y cuando voy a guardar el otro me muestra el mensaje de: MsgBox "Imposible agregar registros, cantidad máxima permitida a sido superada.", vbInformation, "Imposible.. pero si limpia la tabla y quiero volver a guardar los 5 registros entonces ne sigue saliendo el mensaje anterior.
  #5 (permalink)  
Antiguo 16/11/2008, 09:33
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Problemas con numero de registros en una tabla

Cita:
Iniciado por principefreddy Ver Mensaje
hola. david en el forma load le coloque esto: iContadorRegistro = 5 en vez de cero que fuera cinco. pero la primera vez me guarda los 5 registros y esta bien. si me salgo y entre solo me guarda uno y cuando voy a guardar el otro me muestra el mensaje de: MsgBox "Imposible agregar registros, cantidad máxima permitida a sido superada.", vbInformation, "Imposible.. pero si limpia la tabla y quiero volver a guardar los 5 registros entonces ne sigue saliendo el mensaje anterior.
Hola, me parece que no leiste bien la respuesta. No necesitas modificar nada en el Load, únicamente cambiar el orden de las instrucciones en el procedimiento guardar

Conclusión: Guarda primero la variable iContadorRegistro y después le sumas la unidad.

es decir:


Código:
MsgBox "Datos Almacenados Satisfactoriamente", vbInformation, "Guardado"

' se limpian los datos
Text1.Text = ""
Text2.Text = ""

'se almacena la cantidad de registros.
SaveSetting App.EXEName, "CONTADOR", "Registros", iContadorRegistro

'Y se incrementa para la próxima...
iContadorRegistro = iContadorRegistro + 1 
  #6 (permalink)  
Antiguo 16/11/2008, 12:51
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas con numero de registros en una tabla

este es el boton guardar,
Private Sub guardar_Click(index As Integer)
Select Case index
Case 0
'Agregar
If (iContadorRegistro <= 4) Then
'puedo agregar...
deduc2.Recordset.AddNew
deduc2.Recordset(0) = Trim(Text1.Text)
deduc2.Recordset(1) = Abs(Text2.Text)
deduc2.Recordset.Update
deduc2.Refresh
MsgBox "Datos Almacenados Satisfactoriamente", vbInformation, "Guardado"

' se limpian los datos
Text1.Text = ""
Text2.Text = ""

'Y se incrementa para la próxima...
iContadorRegistro = iContadorRegistro + 1

'se almacena la cantidad de registros.
SaveSetting App.EXEName, "CONTADOR", "Registros", iContadorRegistro


coloque despues del mensaje que se me bloqueara el boton y los textos.



y en el load ç. coloque unas lineas de codigo mas. On Error Resume Next
'se inicializan los valores...
Dim iContador As Integer
iContador = CInt(GetSetting(App.EXEName, "CONTADOR", "Registros"))
If (iContador <= 5) Then
iContadorRegistro = iContador
Else
If (iContador = 4) Then
iContadorRegistro = iContador
iContadorRegistro = 4
End If
End If

y en vez de 5 coloque 4. asi funciona correctamente..
Else
'No se pueden agregar...
MsgBox "Imposible agregar registros, cantidad máxima permitida a sido superada.", vbInformation, "Imposible guardar"
guardar(0).Enabled = False
Text1.Enabled = False
Text2.Enabled = False
Text1.Text = ""
Text2.Text = ""
End If
Case 1
'Cerrar
End
End Select
iContadorRegistro = CInt(GetSetting(App.EXEName, "CONTADOR", "Registros"))
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:50.