Access - Problema al insertar registros con cantidades numéricas

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Problema al insertar registros con cantidades numéricas

Publicado por Toni (14 intervenciones) el 02/04/2019 18:00:35
Hola de nuevo,

He creado una consulta para insertar un registro en una tabla, pero no me funciona. Ejecuta todas las líneas sin dar error, pero no inserta el registro en la tabla.

Creo que puede ser debido al valor de los campos 'Banc', 'Efectiu' o 'NumRebut', que están configurados como Número Simple los dos primeros, y Entero el tercero.

Si en el formulario se ha escogido pagar por Banco, los campos Efectivo y Num.Recibo deben quedar vacíos.
Si se ha escogido pagar en efectivo, el campo Banco debe quedar vacío.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sSQL = "INSERT INTO PAGAMENTS (IdUser, IdExercici, Data, " & _
        "Banc, Efectiu, NumRebut) VALUES (" & _
    iUser & ", " & _
    iExercici & ", " & _
    "#" & Format(Me.Data, "mm/dd/yyyy") & "#, "
 
    If Me.MarcTipusPagament = 1 Then
    'Banc
        sSQL = sSQL & _
            Chr(34) & Me.Quantitat & Chr(34) & ", " & _
            Chr(34) & Chr(34) & ", " & _
            Chr(34) & Chr(34) & ")"
    Else
    'Efectiu
        sSQL = sSQL & _
            Chr(34) & Chr(34) & _
            ", " & Chr(34) & Me.Quantitat & Chr(34) & ", " & _
            Chr(34) & Me.NumRebut & Chr(34) & ")"
    End If
 
DoCmd.RunSQL (sSQL)

Agradeceré cualquier ayuda. 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

Problema al insertar registros con cantidades numéricas

Publicado por Anonimo (3316 intervenciones) el 03/04/2019 02:55:32
Quizás una simple evaluación inicial (Banco / Efectivo) y utilizar una SQL en cada opción, seria mas limpio y rápido.

Los campos que no se utilicen no se introducen en la SQL y (con la excepción de que no sean requeridos), tomaran su valor por defecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Problema al insertar registros con cantidades numéricas

Publicado por Norberto (753 intervenciones) el 03/04/2019 09:36:25
Hola:

Indempendientemente del problema que planteas veo que usas Chr(34) para indicar una comilla doble en una expresión. Existe una forma más sencilla de hacerlo en VBA y es usar dos comillas seguidas.

1
sSQL = sSQL & """" & Me.Quantitat & """, """", """")"

Esto no deja de ser un lío de comillas monumental que solo es necesario si la expresión va a ser evaluada únicamente por VBA. Si se trata de una expresión SQL, podemos encerrar los textos literales entre comillas simples ("Ciudad = 'Barcelona'" en vez de "Ciudad = ""Barcelona"""). La expresión quedaría así:

1
sSQL = sSQL & "'" & Me.Quantitat & "', '', '')"

Lo que queda mucho más fácil de leer y evita errores.

Espero que todo te funcione correctamente.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Problema al insertar registros con cantidades numéricas

Publicado por Toni (14 intervenciones) el 04/04/2019 08:59:55
Seguí vuestros consejos. Ahora funciona.

Muchas gracias
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