Tengo una duda con un select

Facmanif = "select [cancelado] from MANIFIESTOS WHERE [Manifiestos]![Man_num] = '" & Me.[fac_mani] & "'"
If IsNull(Facmanif) Then
MsgBox "DEBE DE SELECCIONAR UN MANIFIESTO"
Fac_clien.SetFocus
fac_mani.SetFocus..

Tengo esta consulta, y necesito de la tabla manifiesto si esta cancelado, he probado de varias maneras y no consigo desarrollar la parte lógica.

ejem..

Si esta cancelado ese manifiesto el mesaje, y si no que me lleve el setfocus al siguiente campo..

1 respuesta

Respuesta
2

Una sql de tipo Select, no devuelve un valor, sino un conjunto de registros. Para evaluar lo que quieres, has de usar la función Dlookup():

If IsNull(Dlookup ("cancelado","manifiestos", "Man_num= '" & Me.[fac_mani] & "'")) Then
MsgBox "DEBE DE SELECCIONAR UN MANIFIESTO"
Fac_clien.SetFocus
fac_mani.SetFocus

End if

¡Gracias! Lo había solucionado de esta manera, quería conocer opiniones diferentes y mirar el alcance de toda sentencia.

Dim Facmanif As String
Dim reg As Boolean
Facmanif = "select * from MANIFIESTOS WHERE [Manifiestos]![Man_num] = '" & Me.[fac_mani] & "'"
If IsNull(Facmanif) Then
MsgBox "DEBE DE SELECCIONAR UN MANIFIESTO"
Fac_clien.SetFocus
fac_mani.SetFocus
Else
reg = DLookup("[Facturado]", "MANIFIESTOS", "[Man_num] = form![fac_mani]")
If reg = True Then
MsgBox "MANIFIESTO CANCELADO, SELECCIONA OTRO MANIFIESTO"
Else
Fac_clien.SetFocus
End If
End If

...for each gracias in todoexpertos...seguire en contacto

Fijate una cosa:la variable Facmanif la declaras como string, es decir, una cadena de texto. Al asignarle la Sql, que es una cadena de texto, nunca se va a cumplir la condición de If IsNull(Facmanif)..., pero no por el pretendido valor que esperas obtener de la sql, sino porque una cadena de texto nunca es un valor nulo...

he echo pruebas con la rutina y me funciona perfecto, solo hay una cosa..

si los manifiestos están cancelados, se me queda ahí, le doy desde el botón cerrar y se queda en el msgbox...manifiesto cancelado, selecciona un manifiesto.

como cierro la ventana, cuando no cumplen ninguna condición... 

No creo que te funcione perfecto el código...¿alguna vez consigues que te salga el mensaje "DEBE DE SELECCIONAR UN MANIFIESTO"? Yo creo que no...

Cuando dices que quieres cerrar la ventana, supongo que te refieres al formulario, en cuyo caso puedes poner después del MsgBox lo siguiente:

DoCmd. Close acForm, Me. Name

En que evento se puede utilizar ?

¿Cómo en que evento ...? Esa línea has de ponerla a continuación de la del MsgBox del manifiesto cancelado...

creo que no me hice entender..

bueno: sale el mensaje ok

selecciono otro manifiesto

sale el mensaje y quiero salirme...

ahí es donde tengo el enredo 

Pues no, no te hiciste entender, y con esta explicación, menos aún... Date cuenta de que yo no sé cómo tienes tu BD montada ni cómo funciona... Tampoco sé que código le tienes puesto en el botón Cerrar...

Si te puedes explicar con un poco de más detalle...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas