Imprimir página | Cerrar ventana

Insertar fecha en la posición del cursor

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84770
Fecha de impresión: 27/Marzo/2026 a las 00:24


Tema: Insertar fecha en la posición del cursor
Publicado por: Eduard.2008
Asunto: Insertar fecha en la posición del cursor
Fecha de publicación: 23/Octubre/2019 a las 10:47
Buenos días a todos.
El código adjunto lo vengo utilizando sin problemas, en un campo Memo, para insertar la fecha actual en la posición del cursor (Access 2003).
Al pasar a la versión 2013 he activado la opción de Texto Enriquecido y no consigo que la fecha se inserte en la posición correcta. En los campos que no son de texto enriquecido si que funciona.
Os agradecería que me ayudaseis a resolverlo.
El código que utilizo es el siguiente:

Function InsertaFecha()

Dim ctl         As Control

Dim strTexto    As String

Dim lngPosicion As Long

Dim strMensaje  As String

Set ctl = Screen.ActiveControl

strTexto = ctl.Text

lngPosicion = ctl.SelStart

strMensaje = Left(strTexto, lngPosicion) & Date & Mid(strTexto, lngPosicion + 1)

ctl.Value = strMensaje

ctl.SelStart = lngPosicion + Len(CStr(Date))  

End Function

Muchas gracias.




-------------
Muchas gracias por vuestra ayuda.
www.ofp.cat



Respuestas:
Publicado por: mounir
Fecha de publicación: 23/Octubre/2019 a las 17:24
Hola!

Mírate este enlace:
https://www.everythingaccess.com/tutorials.asp?ID=Using-VBA-to-insert-characters-at-the-cursor-position" rel="nofollow - https://www.everythingaccess.com/tutorials.asp?ID=Using-VBA-to-insert-characters-at-the-cursor-position

-------------
Un Saludo.


Publicado por: Eduard.2008
Fecha de publicación: 24/Octubre/2019 a las 11:42
He probado el link indicado por Mounir y ocurre lo mismo que con el código que venía utilizando.
Creo que la causa del problema es la interferencia que producen los caracteres ocultos que acompañan al texto enriquecido.
El resultado es que la fecha se inserta desplazada respecto de la posición del cursor y que, aparentemente, el desplazamiento no sigue una regla fija.

Gracias Mounir por tu respuesta.




-------------
Muchas gracias por vuestra ayuda.
www.ofp.cat


Publicado por: prga
Fecha de publicación: 24/Octubre/2019 a las 15:48
Hola.
Como parece ser que en texto enriquecido lo del selstart etc etc no funciona bien, una solución alternativa pasaría por:
1º.-Activar en VBA la librería FM20.dll( Microsoft forms 2.0). Como no está en  versiones “modernas” del Access procederemos: en vba, herramientas-Examinar, iremos a la carpeta c:Windows\syswow64 y la cargaremos.
OJO al menos en access 2019 se quedaría activada para "siempre", pero no se importa a otra base de datos nueva.
2º.-Aprovechando el atajo de teclado CTRL+”;” (ctrl+mayúscula+tecla coma) que inserta la fecha del día en cualquier sitio (en texto enriquecido no funciona), pondremos el siguiente código en el evento Keyup de ese cuadro de texto:


If Shift = 3 And KeyCode = 188 And Me.cuadrotextortf.TextFormat = acTextFormatHTMLRichText Then
    Dim miporta As New MSForms.DataObject
    Dim mifecha As String
    mifecha = Format(Date, "dd/mm/yyyy")
    miporta.SetText mifecha
    miporta.PutInClipboard
    DoEvents
    DoCmd.RunCommand acCmdPaste
    miporta.Clear
    Set miporta = Nothing
  else
    'otras cosas
End If

Con lo anterior, al pulsar “CTRL+Shift+tecla coma” se insertará la fecha en la posición que tenga el cursor dentro de ese campo.
Seguro que hay soluciones más sencillas, de todas formas espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos



Publicado por: Eduard.2008
Fecha de publicación: 26/Octubre/2019 a las 07:45
Buenos días.
Gracias prga, funciona perfecto.
Se puede cerrar


-------------
Muchas gracias por vuestra ayuda.
www.ofp.cat



Imprimir página | Cerrar ventana