No consigo insertar un nuevo registro en una tabla

Tengo dos tablas vinculadas por el campo [Id]:
- Inventario
- Inventario_registro (campos Id, nombre, salida, entrada). Solo nombre es un campo requerido. Salida y Entrada tienen formato de fecha corta.

Por otro lado, en el formulario tengo un combobox llamado "txt_nombre" (nombre de la persona que se lleva el material) y un botón que, al pulsarlo, se ejecuta el siguiente código:

    Dim cadSQL As String        'Cadena SQL para crear registro
    cadSQL = "INSERT INTO inventario_registro (Nombre, salida) VALUES ('" & txt_nombre & "', '" & Date & "')"
    CurrentDb. Execute cadSQL

El problema es que, al ejecutarse el código, no se añade ningún registro y no sé cuál es el motivo.

2 respuestas

Respuesta
1

Primero, ¿Estás seguro de que los cuadros de texto se llaman realmente así?

Segundo, si lo que quieres es insertar en el campo Salida el valor de la fecha del sistema prueba a ponerlo como..., Date())"

Por último, puedes ponerlo como

Docmd.runsql"Insert into inventario_registro(nombre,salida)values('" & me.txt_nombre & "',Date())"

No se anexa debido a infracciones en las reglas de validación. La verdad es que, por más vueltas que le doy no encuentro la causa:

- [Id]. Entero largo, requerido e indexado con duplicados.
- [Nombre]. Requerido, permite longitud 0, indexado con duplicados.
- [Salida]. Fecha corta, no requerido, no indexado.
- [Entrada]. Fecha corta, no requerido, no indexado.

Te mando un ejemplo vía email.

Muchas gracias por el tiempo y la ayuda. Al final el problema estaba en el tipo de relación que había establecido entre "Inventario" e "Inventario_datos". Era una relación de uno a infinito, pero en el tipo de combinación seleccione la opción 2: "Incluir TODOS los registros de 'Inventario' y solo aquellos registros de 'Inventario_registro' donde los campos combinados sean iguales."

Al cambiarlo a la opción 1, me dejó añadir registros sin problemas.

¿Pero recibiste el correo?

Respuesta
1

Está mal la instrucción, ha dejado la función Date() como un texto. Pruebe con esto:

     Dim cadSQL As String        'Cadena SQL para crear registro
     cadSQL = "INSERT INTO inventario_registro (Nombre, salida) VALUES ('" & Me.txt_nombre & "'," & "#" & Format(Date, "mm/dd/yyyy") & "#" & ")"
    CurrentDb. Execute cadSQL

No se anexa debido a infracciones en las reglas de validación. La verdad es que, por más vueltas que le doy no encuentro la causa:

- [Id]. Entero largo, requerido e indexado con duplicados.
- [Nombre]. Requerido, permite longitud 0, indexado con duplicados.
- [Salida]. Fecha corta, no requerido, no indexado.
- [Entrada]. Fecha corta, no requerido, no indexado.

Si el id es la clave primaria no puede definirlo como indexado con duplicados, veo que tiene un campo Entrada, como no se actualiza y lo tiene definido como requerido se infringe la regla de validación. Igualmente con el campo Salida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas