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

Error con MySQL

Estas en el tema de Error con MySQL en el foro de Visual Basic clásico en Foros del Web. Hola. Buenas noches. A ver, el problema es el siguiente: Estoy haciendo un sistema y vá con una base de datos de MySQL en donde ...
  #1 (permalink)  
Antiguo 28/05/2009, 17:17
 
Fecha de Ingreso: febrero-2009
Ubicación: Republica de Santa Fe
Mensajes: 99
Antigüedad: 15 años, 2 meses
Puntos: 1
Error con MySQL

Hola. Buenas noches.

A ver, el problema es el siguiente:

Estoy haciendo un sistema y vá con una base de datos de MySQL en donde hay un formulario y se tiene que ir rellenando para luego ingresarlo en la base de datos. Lo quiero saber es como hacer para capturar un error cuando se ingresan datos ya existente.

En este caso me salta el error "-2147217900 Duplicate entry 'A' for a key 'PRIMARY'"

En este ejemplo que les dí, A viene a ser el dato que estoy ingresando que ya está en la base de datos.

Lo que quiero, es que no me aparezca ese mensaje de error de visual sinó usar un formulario para mostrar un mensaje de error determinado.

No sé sí me explico?

Un saludo para todos.
  #2 (permalink)  
Antiguo 29/05/2009, 08:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Error con MySQL

has una consulta y si el dato ya existe que te mande un Error seria algo asi:

Código:
If rs.State = 1 Then rs.Close
        rs.Open "SELECT * FROM TuTabla WHERE TuCampo = '" & TuCajadeTexto & "'", TuConexión, adOpenStatic, adLockOptimistic
            If rs.RecordCount = 0 Then
                'No hagas nada
                Else
                    'Recorremos los Registros hasta dar con el indicado
                    While rs.EOF = False
                        If rs.Fields("TuCampo") = TuCajadeTexto.Text Then
                            MsgBox " El Dato que ingreso ya existe en la base de datos ", vbCritical, "Mensaje ERROR..."
                          'Aqui colocas todo el codigo que quieras mostrar
                            Exit Sub
                        End If
                        rs.MoveNext
                    Wend
            End If
Espero te sirva, lo hice al vuelo y probablemente pueda tener errores de sintaxis, pero esa es la idea
  #3 (permalink)  
Antiguo 29/05/2009, 13:57
 
Fecha de Ingreso: febrero-2009
Ubicación: Republica de Santa Fe
Mensajes: 99
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Error con MySQL

Faaa SalomonSab.... más clarito imposible.
Muy agradecido a vos.
Saludos.
  #4 (permalink)  
Antiguo 30/05/2009, 14:13
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: Error con MySQL

Bueno, tampoco sería necesario recorrer el recordset. Si la propiedad RecordCount es mayor de cero es que el dato ya existe:

Código vb:
Ver original
  1. rs.Open "SELECT * FROM TuTabla WHERE TuCampo = '" & TuCajadeTexto & "'", TuConexión, adOpenStatic, adLockOptimistic
  2. If rs.RecordCount > 0 Then
  3.      MsgBox " El Dato que ingreso ya existe en la base de datos ", vbCritical, "Mensaje ERROR..."
  4.      'Aqui colocas todo el codigo que quieras mostrar
  5.     Exit Sub
  6. End If

  #5 (permalink)  
Antiguo 02/06/2009, 09:32
 
Fecha de Ingreso: febrero-2009
Ubicación: Republica de Santa Fe
Mensajes: 99
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Error con MySQL

Hola, acá volví...
estuve desaparecido unos días.
Ahora pruebo de las dos formas y les comento.
Muchas gracias. :)
  #6 (permalink)  
Antiguo 02/06/2009, 17:42
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Error con MySQL

Mira amigo mas facil coloca algo si

Primero crea un modulo donde coloques la descripcion de los mensajes que quieres ejemplo

IF err.number = -121212 then
msgbox "xxxxxxxxxx"
endif

y asi con cada error

en el formulario haces esto

On Error GoTo ErrorSub

codigo que desees

Exit Sub
ErrorSub:
Call ERROR(Err.Description, Err.Number)

donde ERROR el el procedimiento del sub del modulo espero te sirva saludos
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 01:05.