Access - Insertar campo numérico relacionado

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Insertar campo numérico relacionado

Publicado por Juan Alvarez (2 intervenciones) el 08/01/2019 20:46:29
Buenos días. Tengo tiempo tratando de crear un nuevo registro y me sigue marcando un error que no soy capaz de corregir.
Tengo dos tablas relacionadas entre si por el numero de cliente. La tabla 'Clientes' y la tabla 'Facturas' al insertar un registro en 'Facturas' donde el campo (numérico) 'IdCliente', que esta relacionado a la tabla 'Clientes' me marca error.

Les pongo la parte del código en para ver en que parte puedo tener problemas. Gracias de antemano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
try
{
    Conexion.Open();
    string sql = "INSERT INTO Facturas(IdCliente,Total)" +
                    "VALUES(@IdCliente,@Total)";
    using (OleDbCommand cmd = new OleDbCommand(sql, Conexion))
    {
        cmd.Parameters.AddWithValue("@IdCliente", Convert.ToInt32(txbNum.Text));
        cmd.Parameters.AddWithValue("@Total", Total.ToString());
 
 
        cmd.CommandType = CommandType.Text;
        cmd.ExecuteNonQuery();
 
        Conexion.Close();
    }
    MessageBox.Show("Se ha generado correctamente el pedido");
 
}
catch (Exception error)
{
    MessageBox.Show("Error: " + error.Message);
}
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
sin imagen de perfil
Val: 43
Ha disminuido su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Insertar campo numérico relacionado

Publicado por MARTIN (16 intervenciones) el 08/01/2019 22:35:50
No se si sea esto el problema pero, cuando quiero relacionar una tabla con otra, lo que hago es que relacion en tu caso IDClientes (que seria el campo autonumerico o el campo llave) yo siempre lo hago con autonumerico. Este campo autonumerico se relaciona con un campo en la otra tabla que tienes que crear que se numerico de preferencia el campo llamalo igual para que no te confundas IDclientes.

relacion

Como vez en esta relacion estoy creando un campo "corte bases ID" en la tabla cap corte bases para se relacione con el id corte bases que es la clave autonumerica de la otra tabla.

Es muy importante que sean del mismo formato por ejemplo autonumerico y numerico los dos son numeros por lo que si se pueden relacionar.

Al final siempre exijo integridad referencial a la relacion

integridad-referencial

Estas son las bases para que una relacion funcione bien
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: 3
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

n

Publicado por Juan Alvarez (2 intervenciones) el 08/01/2019 23:36:08
Así tengo los campos configurados, efectivamente IdClientes es mi llave y es autonumérico en la tabla 'Clientes' y es numérico en la tabla 'Facturas' y en la relación esta exigida la integridad referencial.

El error que me arroja es: "Error:La cadena de entrada no tiene el formato correcto."
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: 43
Ha disminuido su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

CADENA DE ENTRADA

Publicado por MARTIN (16 intervenciones) el 09/01/2019 00:50:15
LO QUE TIENES QUE DAR DE ENTRADA ES EL IDCLIENTES PERO SI LO QUE ESTAS ESCRIBIENDO ES EL NOMBRE DEL CLIENTE ENTONCES LO TIENES QUE HACER ES SUSTITUIR EN EL FORMULARIO EL CAMPO IDCLIENTES POR UN CUADRO COMBINADO QUE ESTE LIGADO A LA TABLA CLIENTES A LOS NOMBRES DE LOS CLIENTES. ASI CUANDO PONGAS EL NOMBRE DEL CLIENTE LO VA BUSCAR EN LA TABLA PERO EN LA BASE DE DATOS CAPTURARA EL IDCLIENTES QUE LE HAYAS ASIGNADO A ESE CLIENTE

CUADRO-COMBINADO-ORIGEN-CONTROL

ASEGURA QUE EN EL ORIGEN DEL CONTROL PONGAS EL CAMPO QUE DEFINISTE LIGAR CON LA OTRA TABLA PARA QUE LA CAPTURA SE HAGA EN ESE CAMPO CUANDO ESCOGAS AL CLIENTE
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