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

urgente problemas con recordcount

Estas en el tema de urgente problemas con recordcount en el foro de Visual Basic clásico en Foros del Web. Estimados. Tengo un grave problema al querer validar la entrada de unos datos a una base de datos en access 2003. Cuando debo ingresar estos ...
  #1 (permalink)  
Antiguo 25/11/2008, 18:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 92
Antigüedad: 17 años, 8 meses
Puntos: 0
Sonrisa urgente problemas con recordcount

Estimados.

Tengo un grave problema al querer validar la entrada de unos datos a una base de datos en access 2003. Cuando debo ingresar estos datos, le doy a un boton que hace la secuendia de guardar en una tabla con sus comandos insert y todo lo demas. Hasta ahi todo bien, el problema sucede que cuando intento guardar un registro que existe, en este caso uno que sea con un mismo codigo, el cual es clave primaria en la tabla, no me arroja ningun mensaje que me avise que este ya existe.
Para poder validar esto ocupe recordcount, este para verificar si existe a lo menos 1 registro que tenga ese campo codigo que ingresare. Por lo cual me da a entender que existe y asi me genera el mensaje de error o de advertencia.

El problema es que este recordcount no me funciona. Esto puede ser porque mi aplicacion esta conectada a un origen de datos ODBC? La base de datos esta alojada en un equipo de mi red y desde los host accedo mediante la aplicacion.
Las operaciones de consulta e insercion no tienen problemas. Lo que me genera dramas es cuando deseo validar la entrada de un codigo que ya existe.
Se puede hacer de otra forma???
Agradeceria de vuestra ayuda, ya que estoy trabado en ese paso y logro avanzar.

Muchisimas gracias.
  #2 (permalink)  
Antiguo 26/11/2008, 02:19
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Respuesta: urgente problemas con recordcount

Hola

Si en la base de datos tienes definido el campo como clave (p.e. Cod) debería darte un error al tratar de insertar un registro con el mismo Cod.

De todas formas, podrías poner parte del código donde utilizas el RecordCount para que nos hagamos una idea?

--Saludos--
  #3 (permalink)  
Antiguo 26/11/2008, 18:22
 
Fecha de Ingreso: agosto-2006
Mensajes: 92
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Respuesta: urgente problemas con recordcount

Cita:
Iniciado por Insomnia Ver Mensaje
Hola

Si en la base de datos tienes definido el campo como clave (p.e. Cod) debería darte un error al tratar de insertar un registro con el mismo Cod.

De todas formas, podrías poner parte del código donde utilizas el RecordCount para que nos hagamos una idea?

--Saludos--
Estimado.
lamentablemente lo borré porque me aburri de esa parte y seguí avanzando, pero como bien sabemos el validar entrada de datos es demasiado importante.

Dejo aqui algo del codigo en el cual el cod_agend es la clave primaria por la cual deseo consultar si ya existe antes de guardar datos en la tabla tb_agendamiento


Donde deberia ir una validacion, o mas bien de que tipo o que codigo deberia agregar antes de ese insert???
Agradecería de su experiencia y ayuda, ya que esto me esta colapsando, muchisimas gracias.



Private Sub Command1_Click()
If Label9.Caption = "" Or Label11.Caption = "" Or Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Combo4.Text = "" Or Combo5.Text = "" Then
MsgBox "Por favor ingrese todos los datos solicitados"
Else
Dim mensaje As String
mensaje = MsgBox("Esta de seguro de guardar estos datos?", 4164)

If mensaje = 6 Then

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim txtsql As String
con.Open ("dsn=bodega")
On Error Resume Next




txtsql = "INSERT INTO tb_agendamiento(cod_agend,rut_cliente,nom_cliente, dom_cliente,contacto_cliente,modelo_equipo,simcard ,dia_agend,mes_agend,año_agend,nom_usuario)Values( '" & Text4 + "','" & Text6 + "','" & Text1 + "','" & Text3 + "','" & Text5 + "','" + Label9 + "','" + Combo2.Text + "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo5.Text & "','" + Label22 + "')"
Set rs = con.Execute(txtsql)
con.Close

End If
End If
End Sub
  #4 (permalink)  
Antiguo 27/11/2008, 02:34
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: urgente problemas con recordcount

Cita:
Iniciado por mumo2006 Ver Mensaje
Estimado.
lamentablemente lo borré porque me aburri de esa parte y seguí avanzando, pero como bien sabemos el validar entrada de datos es demasiado importante.

Dejo aqui algo del codigo en el cual el cod_agend es la clave primaria por la cual deseo consultar si ya existe antes de guardar datos en la tabla tb_agendamiento


Donde deberia ir una validacion, o mas bien de que tipo o que codigo deberia agregar antes de ese insert???
Agradecería de su experiencia y ayuda, ya que esto me esta colapsando, muchisimas gracias.



Private Sub Command1_Click()
If Label9.Caption = "" Or Label11.Caption = "" Or Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Combo4.Text = "" Or Combo5.Text = "" Then
MsgBox "Por favor ingrese todos los datos solicitados"
Else
Dim mensaje As String
mensaje = MsgBox("Esta de seguro de guardar estos datos?", 4164)

If mensaje = 6 Then

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim txtsql As String
con.Open ("dsn=bodega")
On Error Resume Next




txtsql = "INSERT INTO tb_agendamiento(cod_agend,rut_cliente,nom_cliente, dom_cliente,contacto_cliente,modelo_equipo,simcard ,dia_agend,mes_agend,año_agend,nom_usuario)Values( '" & Text4 + "','" & Text6 + "','" & Text1 + "','" & Text3 + "','" & Text5 + "','" + Label9 + "','" + Combo2.Text + "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo5.Text & "','" + Label22 + "')"
Set rs = con.Execute(txtsql)
con.Close

End If
End If
End Sub
Hola, puedes hacer una consulta previa a la tabla para verificar si el código ya existe.

Podría ser algo así:

Código:
Private Sub Command1_Click()
If Label9.Caption = "" Or Label11.Caption = "" Or Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Combo4.Text = "" Or Combo5.Text = "" Then
    MsgBox "Por favor ingrese todos los datos solicitados"
Else
    '''' yo esto lo eliminaría, pues su supone que si ha pulsado el botón de guardar
    '''' es porque realmente los quiere guardar
    'Dim mensaje As String
    'mensaje = MsgBox("Esta de seguro de guardar estos datos?", 4164)
    'If mensaje = 6 Then

    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    '   Dim txtsql As String
    con.Open ("dsn=bodega")
    '   On Error Resume Next
    rs.Open "SELECT Count(*) FROM tb_agendamiento WHERE cod_agend = " & Text4.Text, con
    ''' recuerda que si el campo es de tipo texto, lo tienes que encerrar entre comillas simples
    If rs(0) > 0 Then
        MsgBox "El código ya existe"
    Else
        con.Execute "INSERT INTO tb_agendamiento(cod_agend,rut_cliente,nom_cliente, dom_cliente,contacto_cliente,modelo_equipo,simcard ,dia_agend,mes_agend,año_agend,nom_usuario)Values( '" & Text4 + "','" & Text6 + "','" & Text1 + "','" & Text3 + "','" & Text5 + "','" + Label9 + "','" + Combo2.Text + "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo5.Text & "','" + Label22 + "')"
        'Set rs = con.Execute(txtsql)
        'con.Close
    End If
    Set rs = Nothing
    con.Close
End If

End Sub

Última edición por Avellaneda; 27/11/2008 a las 04:25 Razón: Olvidé poner la conexión al recordset
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 21:49.