Insertat un registro en una tabla mediante SQL

Tengo una tabla ( clave principal autonumérica) con 5 campos, uno de ellos el DNICliente. Quiero insertar un nuevo registro sólo con el campo DNICliente. ( El valor de este campo lo tengo en la variable DNI, y luego mostrar en un formulario el registro añadido.
¿Es complicado, verdad?

1 respuesta

Respuesta
1
... es imposible.
Cuando creas un registro en una tabla, lo creas con todos sus campos, los definidos en la tabla. No es posible insertar un registro con solo algunos campos, da igual que lo hagas mediante SQl, VB, o como sea.
De todos modos, lo que se puede hacer es insertar un nuevo registro con todos sus campos y rellenar solo uno de ellos.
La SQL:
INSERT INTO Tabla (DNICliente)
Values ( dni )
Así sin más no funcionara, pero si la llamas desde un modulo de VB como
...
Base.Execute ("INSERT INTO Tabla (DNICliente)
VALUES (" & DNI & ")"
...
Estarás haciendo lo que quieres. La única forma de que una SQL tome el valor de una variable es esa. Bueno no es la única, pero las otras son aun más complicadas: definir un procedimiento almacenado en el servidor SQL que tome parámetros de entrada, o almacenar la consulta en la propia base de datos si es Access y que tome el valor de un cuadro de texto de un formulario, etc.
En cuanto a mostrar ese registro en el formulario, simplemente, una vez creado, debes moverte a él. Esto puedes hacer de muchas maneras. Con el método find, con filtros, con un simple movelast si no has definido una ordenación especifica...
Se trata simplemente de hacer "algo más" después de ejecutar la SQL, pero desde la SQL en si, NO PUEDES actuar sobre un formulario.
Muchas gracias, has contestado a mi pregunta, supongo que me expresé mal, porque lo que realmente quería era insertar un nuevo registro con todos sus campos y rellenar solo uno de ellos.
Y la verdad es que lo he probado ( Con el docmd. Runsql ), y funciona.
Muchas gracias.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas