none
Fallo al insertar en una tabla ACCESS desde vb2008 Express cuando una columna tiene definida una regla de validacion utilizando el operador LIKE RRS feed

  • Pregunta

  • Me he encontrado con un posible bug y quisiera vuestra opinión.

    Tengo una tabla definida en ACCESS 2007 con una columna que tiene la siguiente regla de validación (like "CM*") definida para uno de sus campos en la definición de la tabla.

    Verifico desde el gestor de tablas de access su correcto funcionamiento.

    Desde un programa en visualbasic 2008 Express hago el siguiente insert

    dim SQLtxt as string

    dim cmd as Oledbcommand

    VIDMAQUINA="CM29"

    VDESCMAQUINA="DAIGUAL"

    SQLtxt="Insert into maquinas (idmaquina,descmaquina) values (' " & VIDMAQUINA & " ',' " & VDESCMAQUINA & " ') "

    cmd=new oledbcommand(sqltxt,cnn)

    cmd.executeNonQuery()

    Si ejecuto la instrucción me falla saltando por una excepción que indica que el problema es que la regla de validación para el campo idmaquina falla (cosa que no es cierta).

    1. Si quito la regla de validación (like CM* ) de la definición de columna idmaquina de la tabla maquinas la sentencia insert funciona correctamente desde el programa vb.net

    2. Si, dejando la regla definida, pongo un break point en modo debug para ver el valor de la variable SQLtxt y a continuación hago un copy paste para crear una consulta en ACCESS y probar, el resultado es que la sentencia se ha construido bien porque se inserta sin problemas.

    3. Si borro la regla de validación y ejecuto el programa vb.net que hace el insert los datos se graban correctamente. Y si a continuación creo la regla sobre los datos grabados (desde ACCESS) la regla se crea sin problemas  indicando que los datos han entrado de forma correcta.

    He realizado pruebas con un campo númerico de una tabla que tiene una restricción del tipo >200 y en este caso funciona correctamente.

    ¿Alguien se ha encontrado con este problema?

    Las pruebas se ha hecho com ACCESS 2007 y VisualBasic 2008 Express.

    Gracias

    martes, 5 de abril de 2011 14:40

Respuestas

  • hola

    esta pregunta se respondio en el foro de vb.net

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/7506e250-2078-4445-ab6a-7043626c1b28/

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 6 de abril de 2011 2:44