Cómo mantener seleccionado el ultimo registro de un cuadro de lista?
Buenas Tardes
He creado un formulario de registrar datos, al momento que presiono el botón guardar este me guarda el registro en la tabla, me lo muestra en un cuadro de lista y finalmente me imprime el último registro de ese cuadro de lista que esta seleccionado para lo cual utilizo cualquiera de los siguientes códigos:
- Me.lstconversation = Me.lstconversation.ItemData(Me.lstconversation.ListCount - 1)
2. Me.lstconversation.Selected(Me.lstconversation.ListCount - 1) = True ' para marcar la última fila
El problema está al momento de guardar un registro, ya que en ocasiones se selecciona el penúltimo registro imprimiéndome este y no el último registro ingresado. Este Access lo tengo en una carpeta compartida en Red y debe ser usado por dos personas.
Vi que ese problema se da si en las dos computadoras está abierto el formulario, por ejemplo si el usuario1 minimiza el formulario, al usuario2 se le selecciona el penúltimo registro, lo mismo sucede a lo viceversa.
Hasta el momento no he conseguido algo que me lo solucione.
Agradezco la ayuda que me puedan brindar.
Información del código:
1.tblConversation= Tabla
2.lstconversation= Cuadro Lista
3.indexKey= campo Autonumérico y llave primaria de la tabla.
El botón tiene en el evento al hacer Clic el siguiente código:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("tblConversation")
rs.AddNew
rs!Conversation1 = fOSUserName() & " "
rs!Num_Identificacion = " " & txt_Num_Identificacion
rs!Paciente = " " & txt_Nombre
rs!Observaciones = "" & txtObservaciones
rs.Update
rs.Close
db.Close
MsgBox "Los datos se ingresaron satisfactoriamente", vbInformation, "Datos"
Me.lstconversation = Me.lstconversation.ItemData(Me.lstconversation.ListCount - 1)
Me.lstconversation.Selected(Me.lstconversation.ListCount - 1) = True ' para marcar la última fila
Dim NumerosPedidos As String
Dim ElementoSeleccionado As Variant
For Each ElementoSeleccionado In Me.lstconversation.ItemsSelected
NumerosPedidos = NumerosPedidos & Me.lstconversation.ItemData(ElementoSeleccionado) & ","
Next
' si había algúno seleccionado
If Len(NumerosPedidos) > 0 Then
NumerosPedidos = Left(NumerosPedidos, Len(NumerosPedidos) - 1)
' y abrimos el informe en vista previa para visualizar los pedidos seleccionados
DoCmd.OpenReport "Comprobante", acViewPreview, , "indexKey IN(" & NumerosPedidos & ")"
DoCmd.PrintOut 'Este codigo me imprime el informe
DoCmd.Close acReport, "Comprobante", acSaveNo
txt_Num_Identificacion.SetFocus
txt_Num_Identificacion = Null
txtObservaciones = Null
txt_Nombre = Null
End If