Cómo actualizar formulario de Access?

Tengo un formulario de llamadas telefónicas donde el origen de los datos es de una consulta.

Dicha consulta solamente muestra los clientes con los siguientes estados:

"Llamar después" O "No contesta" O "No se encuentra en casa" O "" O Es Nulo

Además, En el formulario tengo dos botones de navegación, uno para pasar al siguiente registro y otro para devolverme al registro anterior y tres cuadros combinado para seleccionar el estado de la primera, segunda y tercer llamada.

Lo que quiero hacer es que al momento de seleccionar en el cuadro combinado el estado "No desea cita" o "Fuera del país" estos registros no me aparezcan más en el formulario.

En lo que he investigado lo he intentado hacer con los siguientes códigos colocándolos antes del DoCmd. GoToRecord,, acNext :

  • DoCmd. RunCommand acCmdSaveRecord
  • DoCmd. RunCommand acCmdRefresh
  • DoCmd.Requery "frm_llamadas"
  • Form_frm_llamadas. Recalc
  • Me!frm_llamadas. Repaint
  • Me. Repaint
    Pero con ninguno he tenido suerte, con algunos si se desaparece el registro del formulario pero me devuelve al primer registro de la consulta y lo correcto seria que continúe con el registro por donde voy haciendo las llamadas.
  • Código del botón siguiente registro:
Private Sub Siguiente_Registro_Click()
On Error GoTo Err_SiguienteReg_Click
DoCmd.GoToRecord , , acNext
If NewRecord Then
DoCmd.GoToRecord , , acLast
Call MsgBox("NO HAY MAS REGISTROS", vbExclamation, "INFORMACION")
End If
Exit_SiguienteReg_Click:
Exit Sub
Err_SiguienteReg_Click:
MsgBox Err.Description
Resume Exit_SiguienteReg_Click
End Sub

2 respuestas

Respuesta

La verdad, no he entendido nada. Por ejemplo, en la instrucción le dices que vaya al siguiente registro, y que si es un registro nuevo vaya al último. Es una redundancia, ya que por construcción, en Access, un registro nuevo siempre es el último. En todo caso sería algo como

Docmd. Gotorecord,, acnext

if me.newrecord then

msgbox.....

end if

Por otro lado, si lo que quieres es que una vez elegido algo en el combinado, él formulario "reconsulte" su origen de registros, en este caso una consulta, basta con poner en algún lado

Me. Requery

¡Gracias! 

si utilizo Me. Requery, es que si voy llamando el cliente  de la fila 1000, Me. Requery me devuelve al primer registro y eso no es funcional.

La idea es que si un cliente tiene un estado diferente a los del filtro de la consulta, automáticamente ya no se muestre más en el formulario al usar los botones de registro anterior o registro siguiente.

En el formulario solamente se deben cargar los clientes que tienen los siguientes estados:

"Llamar después"

O "No contesta"

O "No se encuentra en casa"

O "" O Es Nulo

ese es el criterio que tengo en la consulta que está ligada al formulario, para que me los filtre

Ejemplo:

  1. Llamé al cliente Juan, él me indica que "no desea cita" y esa es la opción que seleccioné en el cuadro combinado

2.hago Click en el botón siguiente

Y se me carga el cliente "Pedro", al momento de llamar a pedro, él me dice que lo llame después porque esta en una reunión y no me puede atender.

Entonces selecciono el estado de "Llamar después"

hasta este punto todo funciona bien.

Cuál es el problema que tengo?

Si hago click en el botón registro anterior, se vuelve a cargar en el formulario los datos de "JUAN", pero a este cliente anteriormente se le había seleccionado el estado "no desea cita" y según los criterios que he indicado en la consulta, ese estado no debería cargarse en el formulario.

m

Anoche estaba tan cansado que había olvidado mencionar que los datos de los clientes  están en una tabla tbl_clientes(solo sirve para ver los datos personales del cliente en el formulario) y los estados de las llamadas se guardan en la tabla tbl_llamadas.

la consulta  que muestra los datos de los clientes en el formulario (origen del registro)proviene de una relación de las dos tablas anteriores(se relacionan por la identificación de los clientes)

Respuesta

Igualmente no veo clara su consulta seria conveniente que colocara una imagen del formulario.

¡Gracias! Eduardo

Anoche por el cansancio omití adjuntar imágenes 

Ejemplo del formulario:

  1. Llamé al cliente Juan, él me indica que "no desea cita" y esa es la opción que seleccioné en el cuadro combinado

2.hago Click en el botón siguiente

Y se me carga el cliente "Pedro", al momento de llamar a pedro, él me dice que lo llame después porque está en una reunión y no me puede atender.

Entonces selecciono el estado de "Llamar después"

hasta este punto todo funciona bien.

¿Cuál es el problema que tengo?

Si hago click en el botón registro anterior, se vuelve a cargar en el formulario los datos de "JUAN", pero a este cliente anteriormente se le había seleccionado el estado "no desea cita" y según los criterios que he indicado en la consulta, ese estado no debería cargarse en el formulario.

había olvidado mencionar que los datos de los clientes están en una tabla tbl_clientes(solo sirve para ver los datos personales del cliente en el formulario) y los estados de las llamadas se guardan en la tabla tbl_llamadas.

la consulta que muestra los datos de los clientes en el formulario (origen del registro)proviene de una relación de las dos tablas anteriores(se relacionan por la identificación de los clientes)

En resumen, si selecciono un estado diferente a los indicados en el criterio de la consulta, ese registro que esta en el formulario no se debe mostrar otra vez en el formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas