Access - Error ODBC fallo la llamada en access

 
Vista:

Error ODBC fallo la llamada en access

Publicado por Ericksgp (2 intervenciones) el 29/05/2019 17:22:04
Tengo una base de datos en SQL y la tengo vinculada con access para los formularios.

La tabla con la que trabajo tiene un campo llamado control que solo acepta valores únicos.

Cuando un valor se duplica, manda el error ODBC fallo la llamada en access:

[Microsoft odbc] [sql server driver][SQL Server] Violation of UNIQUE KEY constraint 'productoUnico' Cannot insert duplicate key in objet dbo.inventario.

Los errores en ese cuadro son Duplicate key value 2627 y Statememnt has been terminated 3621.

Como puedo manejar estos errores en access para mandar un mensaje que indique que se esta duplicando el producto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error ODBC fallo la llamada en access

Publicado por Ericksgp (2 intervenciones) el 29/05/2019 17:46:22
Gracias. He solucionado momentáneamente este error de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_BeforeUpdate(Cancel As Integer)
 
On Error GoTo Handler
 
Handler:
 
MsgBox "Este material ya esta dado de alta. Verifique en la base de datos", vbInformation, "Material Duplicado"
Cancel = True
Cmb_Tipo.SetFocus
Sendkeys "{Esc}"
 
End Sub

Aunque me hubiese gustado tratar específicamente los errores 2627 y 3621. Ya que de la forma que lo estoy tratando mando el mismo mensaje ante todos los errores que pudieran ocurrir. Pero de momento esto servirá.

Ya trate de capturar el error con Err.Number. Pero me manda un 0 (cero)

Mil gracias por ser su apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error ODBC fallo la llamada en access

Publicado por Anonimo (3322 intervenciones) el 30/05/2019 01:27:50
Hay diversas formas de hacer las cosas, la mejor es aquella que en la practica no da problemas (y eso dependerá del entorno real).

Una de ellas consiste en intentar la inserción y remendar los errores que se produzcan

Otra consiste en verificar la existencia del dato y obrar en consecuencia (sospecho que es menos intrusiva)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 50
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Error ODBC fallo la llamada en access

Publicado por Cesar (23 intervenciones) el 30/05/2019 17:00:43
Hola.

Revisa la documentacion del On Error.

https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/on-error-statement

Tienes que usar las propiedades Number y Description, del objeto Err.

Tu codigo modificado quedaria asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_BeforeUpdate(Cancel As Integer)
 
On Error GoTo Handler
 
Handler:
IF Err.Number=2627 OR Err.Number=3621 THEN
   MsgBox "Este material ya esta dado de alta. Verifique en la base de datos", vbInformation, "Material Duplicado"
ELSE
   MsgBox Err.Description, vbInformation, "Otro error"
END IF
Cancel = True
Cmb_Tipo.SetFocus
Sendkeys "{Esc}"
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar