Access - Comprobacion valores de 2 tablas y datos gemelos.

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

Comprobacion valores de 2 tablas y datos gemelos.

Publicado por Francisco (16 intervenciones) el 05/09/2016 15:13:45
Buenas tardes, tengo 2 tablas con distinto nombre e iguales campos y tipo de campos. El caso es que quiero hacer una consulta que me compruebe si se modifico el valor de alguno de los campos de una de las 2 tablas. En el caso de que haya un valor distinto en un campo, estese almacenaria en una tabla aparte de registros diferentes. El valor del campo clave puede ser distinto pero el resto de campos no. Los valores los selecciono de un formulario y voy recorriendo la otra tabla buscando algun valor que no coincida.
Al ejecutar una consulta me sale un error: Error de sintaxis (coma) en la expresion de consulta, y esta es la consulta:

sql = "SELECT XDiario.ASIEN, XDiario.FECHA, XDiario.SUBCTA, XDiario.CONTRA, XDiario.CONCEPTO, XDiario.FACTURA, XDiario.IVA, XDiario.MONEDAUSO, XDiario.EURODEBE, XDiario.EUROHABER, XDiario.BASEEURO FROM XDiario WHERE (((XDiario.FECHA)= # " & cContafecha & " # ) AND ((XDiario.SUBCTA)='" & cContaSubcta & "') AND ((XDiario.CONCEPTO)='" & cContaContenido & "') AND ((XDiario.EURODEBE)= " & nContaEurodebe & ") AND ((XDiario.EUROHABER)= " & nContaEuroHaber & "))"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Set rsResultado = CurrentDb().OpenRecordset(sql, dbOpenDynaset)
 
If rsResultado.RecordCount = 0 Then
    rsCompararDiario.AddNew
    rsCompararDiario.Recordset("ASIEN") = rsResultado("asien")
    rsCompararDiario.Recordset("Fecha") = rsResultado("Fecha")
    rsCompararDiario.Recordset("subcta") = rsResultado("subcta")
    rsCompararDiario.Recordset("Contra") = rsResultado("Contra")
    rsCompararDiario.Recordset("concepto") = rsResultado("concepto")
    rsCompararDiario.Recordset("Factura") = rsResultado("Factura")
    rsCompararDiario.Recordset("IVA") = rsResultado("IVA")
    rsCompararDiario.Recordset("MonedaUso") = rsResultado("MonedaUso")
    rsCompararDiario.Recordset("eurodebe") = rsResultado("eurodebe")
    rsCompararDiario.Recordset("eurohaber") = rsResultado("eurohaber")
    rsCompararDiario.Recordset("Baseeuro") = rsResultado("Baseeuro")
    rsCompararDiario.Update
End If

Los campos texto son SUBCTA, CONCEPTO,
Los campos numericos de tipo doble son; EURODEBE. EUROHABER
El campo fecha es: FECHA.

Alguien me puede decir ¿por que me da ese error?. Gracias.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Comprobacion valores de 2 tablas y datos gemelos.

Publicado por Neckkito (1157 intervenciones) el 06/09/2016 11:17:29
Probablemente este error te lo dé porque el valor del formulario está en formato español, mientras que las SQL siempre utilizan todos los parámetros en formato inglés.

Es decir, que si el valor es 10,25 la SQL no sabe cómo interpretarlo, o no lo interpreta, en tu caso, como un valor numérico, puesto que para el sistema inglés los decimales se separan con puntos.

Prueba, en tus valores numéricos, realizar un replace() de la coma por un punto. Algo así como, por ejemplo:

XDiario.EURODEBE= " & replace(nContaEurodebe, ",",".")

A ver si te sale.

Saludos.

Neckkito
http://bit.ly/neckkito
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: 20
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Comprobacion valores de 2 tablas y datos gemelos.

Publicado por Separar registros no coincidentes (16 intervenciones) el 06/09/2016 23:09:58
No se si me explique bien antes, mejor pongo un ejemplo

Hola, necesito ayuda, tengo 2 tablas con los mismos campos, los mismos valores, menos en uno de los campos de una de las tablas :

tabla 1
-----------------------campo1--------campo2--------campo3
reg 1 --------------- 1 --------------- 2 --------------- 3
reg 2 --------------- 4 --------------- 5 --------------- 6

tabla 2
-----------------------campo1--------campo2--------campo3
reg 1 --------------- 1 --------------- 9 --------------- 3
reg 2 --------------- 4 --------------- 5 --------------- 6

Como puedo hacer para que el 1º registro de la tabla 2 el cual es distinto al 1º registro de la tabla 1, almacenarlo en tabla 3 de registros completos no coincidentes

tabla 3
-----------------------campo1--------campo2--------campo3
reg 1 --------------- 1 --------------- 2 --------------- 3

He intentado hacerlo con consulta de no coincidentes pero nada y estoy atascado.
Muchas gracias y un saludo.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Comprobacion valores de 2 tablas y datos gemelos.

Publicado por Neckkito (1157 intervenciones) el 07/09/2016 09:00:41
¿Hay algún campo identificador único del registro? ¿Es ese identificador único el mismo en ambas tablas?
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: 20
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Comprobacion valores de 2 tablas y datos gemelos.

Publicado por Francisco (16 intervenciones) el 07/09/2016 11:20:30
Hola, Gracias por responder. No tiene campo clave ni id, ninguna de las 2 tablas Ya lo solucione con una consulta de registros no coincidentes, enlazando los campos en los cuales necesito hacer la busqueda.

consulta
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