Access - por ahorrar espacio (pregunta de ifs)

 
Vista:

por ahorrar espacio (pregunta de ifs)

Publicado por Adolfo (98 intervenciones) el 22/02/2008 18:06:58
Hola, veran, tengo un boton que me aveis ayudao a hacer, y tuiene que meter varios registros en 1 tabla, para poder poner uno debajo del otro en la tabla pongo varios ssql1,2,3 etc... y como tengo 7 casillas que copiar a la tabla, xo seguramente se usen solo 1 o 2 normalemente, si dejo el resto tal cual se me añade un 0 en la tabla cada vez asi que por Ahorrar Espacio e intentao poner un iif como ven abajo, pero cuando lo ago me sale un mensaje de "Incorrect use of Null" asi que si no es null, como ago para que no aga nada si pp2=0 x ejemplo ? ?
gracias



ssql1 = "INSERT INTO facturacionTOTAL" & " (numero_e, numero_c, producto, precio, hora, fecha, visa) VALUES ('" & (IDEmpleado) & "', '" & (IdCliente) & "', '" & (p1) & "', '" & (pp1) & "', '" & Time & "', '" & Date & "', '" & (Vvisa) & "')"

ssql2 = IIf(pp1 = 0, Null, "INSERT INTO cliente" & IdCliente & " (tratamientos, precio, fecha ) VALUES ('" & (p1) & "' , '" & Val(pp1) & "','" & Date & "')")

ssql3 = IIf(pp2 = 0, Null, "insert into cliente" & IdCliente & " (tratamientos, precio, fecha) values ('" & (p2) & "', '" & (pp2) & "', '" & Date & "')")

CurrentDb.Execute ssql1
CurrentDb.Execute ssql2

CurrentDb.Execute ssql3
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

RE:por ahorrar espacio (pregunta de ifs)

Publicado por Chea (1015 intervenciones) el 22/02/2008 18:48:14
Si has dimensionado ssql1 como String, entonces no admite valores nulos. Prueba a cambiar el null de los IIF por vbNullString o "".

Saludos
José Bengoechea Ibaceta
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

RE:por ahorrar espacio (pregunta de ifs)

Publicado por Enrique (1299 intervenciones) el 22/02/2008 18:51:02
Adolfo:
Creo que lo hay que hacer es impedir que se ejecuten los SQL si los campos pp1 o pp2 son nulos o cero, simplemente saltándose la ejecución en esos casos, algo más o menos así:

Private Sub BFacturar_Click()
'ESTA PRIMERA SE EJECUTARÁ SIEMPRE
ssql1 = "INSERT INTO facturacionTOTAL" & " (numero_e, numero_c, producto, precio, hora, fecha, visa) VALUES ('" & (IDEmpleado) & "', '" & (IdCliente) & "', '" & (p1) & "', '" & (pp1) & "', '" & Time & "', '" & Date & "', '" & (Vvisa) & "')"
CurrentDb.Execute ssql1

If IsNull(pp1) Or pp1 = 0 Then
Goto Salto_A_ssql3
Else
ssql2 = "INSERT INTO cliente" & IdCliente & " (tratamientos, precio, fecha ) VALUECurrentDb.Execute ssql1 S ('" & (p1) & "' , '" & Val(pp1) & "','" & Date & "')")
CurrentDb.Execute ssql2
End If

Salto_A_ssql3:
If IsNull(pp2) Or pp2 = 0 Then
Goto Fin
Else
ssql3 = "insert into cliente" & IdCliente & " (tratamientos, precio, fecha) values ('" & (p2) & "', '" & (pp2) & "', '" & Date & "')")
CurrentDb.Execute ssql3
End If

Fin:
End Sub

Observa que en estos casos, la ejecución de cada SQL se debe efectuar inmediatamente después de cada sentencia, en lugar de todas al final.

Saludos
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

RE:por ahorrar espacio (pregunta de ifs)

Publicado por Adolfo (98 intervenciones) el 22/02/2008 18:58:08
gracias, lo ire probando, ya os dire el lunes si funciona o no, y mientras tanto disfrutar el findesemana :)
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

RE:ya sta todo claro grax

Publicado por Adolfo (98 intervenciones) el 25/02/2008 16:32:18
Ya sta todo eso incorporado, gracias.

-Adolfo-
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