Access - variable que elija valores nulo o no nulo y pasar esta a un codigo sql

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

variable que elija valores nulo o no nulo y pasar esta a un codigo sql

Publicado por JJ65 (13 intervenciones) el 16/02/2019 12:25:42
Esto no me funciona

1
2
3
4
5
6
Dim StrX As String
StrX = IIf(Me.Marco0.Value = 1, " NOT ISNULL ", " ISNULL ")
 
Me.CmbCuentas.RowSource = "SELECT CtrlCC_F1.FormatoCC1, CtrlCC_F1.Titulares, CtrlCC_F1.NombreEntidad, CUENTAS.FechaF " & _
"FROM CtrlCC_F1 INNER JOIN CUENTAS ON CtrlCC_F1.IdCuenta = CUENTAS.IdCuenta  " & _
"WHERE (((CtrlCC_F1.NombreEntidad)='" & Me.CmbEntidad.Value & "')) AND ('" & StrX & "'(CUENTAS.FechaF));"

¿Como se puede realizar?

MUCHAS 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

variable que elija valores nulo o no nulo y pasar esta a un codigo sql

Publicado por Anonimo (3316 intervenciones) el 16/02/2019 19:42:36
En principio no funcionara, porque se trata a la variable como un texto y no como un valor.

Aclaro este detalle:
Supongamos que a la variable StrX se le asigna el valor "Not IsNull"

cuando el motor de Access analice la expresión para establecerla como origen de datos de un combo (o cuadro de lista) interpretaría esto:
… WHERE CtrlCC_F1.NombreEntidad ='Galletas el goloso S.A.' AND 'Not IsNul' (FechaF)

Si se modifica esa expresión:
(original)
WHERE (((CtrlCC_F1.NombreEntidad)='" & Me.CmbEntidad.Value & "')) AND ('" & StrX & "'(CUENTAS.FechaF));"

(Modificada)
WHERE (((CtrlCC_F1.NombreEntidad)='" & Me.CmbEntidad.Value & "')) AND (" & StrX & " (CUENTAS.FechaF));"

Con esta ultima Access interpretaría esto:
… WHERE CtrlCC_F1.NombreEntidad ='Galletas el goloso S.A.' AND Not IsNul (FechaF)

Y se obtendría lo que se solicita

Hay una alternativa ….
IF Me.Marco0 = 1 Then StrX =" NOT "


.... WHERE (((CtrlCC_F1.NombreEntidad)='" & Me.CmbEntidad.Value & "')) AND (" & StrX & " ISNULL (CUENTAS.FechaF));"

La analizo:
StrX adquiere por defecto el valor equivalente a una cadena de texto vacía ==> ""

.- Si no se cumple la igualdad, seguirá siendo una cadena vacía
.- El predicado ISNULL es una constante dado que siempre esta presente en la expresión.
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: 21
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

variable que elija valores nulo o no nulo y pasar esta a un codigo sql

Publicado por JJ65 (13 intervenciones) el 17/02/2019 11:26:10

ACCESS 2003



MUCHAS GRACIAS POR RESPONDER
me di cuenta que el error estaba en las comillas simples ' realice esto y salio. Estudiare con mas detalle tu código. GRACIAS
------------------------------------------
Me.CmbCuentas.RowSource = "SELECT CtrlCC_F1.FormatoCC1, CtrlCC_F1.Titulares, CtrlCC_F1.NombreEntidad, CUENTAS.FechaF, CtrlCC_F1.IdCuenta " & _
"FROM CtrlCC_F1 INNER JOIN CUENTAS ON CtrlCC_F1.IdCuenta = CUENTAS.IdCuenta " & _
"WHERE (((CtrlCC_F1.NombreEntidad)='" & Me.CmbEntidad.Value & "')) AND (" & IIf(Me.Marco0.Value = 1, " NOT ISNULL ", " ISNULL ") & "(CUENTAS.FechaF));"
----------------------------------
Pasándome de aprovecho la situación.

Si tengo un formulario en el cual filtro registros y tengo por otro lado en access 2003 la consulta ya realizada
desde esta como puedo recoger los datos
no me funciona cuando pongo en un "grupo de opciones" con "botones de opciones"
en la consulta ya realizada ConsultaRecogidaFiltros pongo IIF([FORMS]![FORMULARIO1]!MARCO0.VALUE1;"-1";"0")) este lo pongo en vista diseño y va metido en un campo booleano si en sql se puede realizar supongo que desde la consulta podre llamar al campo del formulario....

¿Tendría que estar la ConsultaRecogidaFiltros en las propiedades del formulario en Datos, origen del registro o no hace falta?

Me refiero a que después de marcar o poner datos en el formulario (estos pasaran a la consulta) doy al boton click:
If CnConexion.State = 1 Then
Dim RsADO As ADODB.Recordset
Set RsADO = New ADODB.Recordset
RsADO.Open "ConsultaRecogidaFiltros", CnConexion, adOpenForwardOnly, adLockReadOnly
etc
y hace falta meterla en propiedades, datos, origen formulario o si?

Esto no me funciona Como se puede realizar

MUCHAS GRACIAS POR LA RESPUESTA Y PERDÓN POR LA NUEVA PREGUNTA
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