Imprimir página | Cerrar ventana

Insertar caracteres ASCII o UNICODE (Cont)

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=86828
Fecha de impresión: 27/Marzo/2026 a las 02:21


Tema: Insertar caracteres ASCII o UNICODE (Cont)
Publicado por: Jehosuah
Asunto: Insertar caracteres ASCII o UNICODE (Cont)
Fecha de publicación: 15/Diciembre/2023 a las 22:02
Hola amigos.
Perdón por iniciar otra vez este hilo, pero no lo tengo claro aún.
El código que me pasó Lupita tiene el siguiente texto en el control que envía a la función de insertar en el cursor:

This example inserts preset paragraphs at the cursor as the user presses Alt+1, Alt+2, etc.

Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim strMsg As String
    Dim strText As String
    
    If Shift = acAltMask Then
        Select Case KeyCode
        Case vbKey1
            strText = "Paragraph 1" & vbCrLf
        Case vbKey2
            strText = "Paragraph 2" & vbCrLf
        Case vbKey3
            strText = "Paragraph 3" & vbCrLf
        'etc for other paragraphs.
        End Select
        If InsertAtCursor(strText, strMsg) Then
            KeyCode = 0
        ElseIf strMsg <> vbNullString Then
            MsgBox strMsg, vbExclamation, "Problem inserting boilerplate text"
        End If
    End If
End Sub
No consigo entenderlo bien. Cuando lo ejecuto solo me da tiempo a pulsar la 
tecla alt, pero no puedo escribir nada a continuación.
Y aplica los valores KeyCode=18 / vbKey1=49 / vbKey2=50 / vbKey3= 51
¿Qué son estos campos y por qué aplica esos valores automáticamente?
¿Cómo escribo algo al pulsar alt, y cómo busco lo que he escrito en el Select Case?




Respuestas:
Publicado por: Mihura
Fecha de publicación: 16/Diciembre/2023 a las 09:38
Este es un tema interesante ... incluir caracteres 'raros' en tiempo real.

Yo me plantearía:
- crearme una función que lanzara bien un formulario específico que recoja el número del carácter especial o un inputbox
- lanzar el módulo anterior con una tecla de función
- para ello interceptar el subir/bajar tecla del cuadro de texto afectado (hay que ver cuál, ya que se comportan de manera distinta)
- incluir los caracteres deseados ChrW(nnnn) en el textbox usando SelText, SelStart, ....

Puede ser entretenido.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: pitxiku
Fecha de publicación: 16/Diciembre/2023 a las 23:30
He hecho una pequeña prueba, y mientras que en los campos texto corto y texto largo sin formato se generan caracteres ASCII al usar la tecla Alt, en un campo texto largo con formato enriquecido se generan los caracteres Unicode, por si os interesa:

Tabla1
CódigoAlt TextoCorto TextoLargoNormal TextoLargoEnriquecido
256
360 h h Ũ
434 Ʋ
999 þ þ ϧ
1001 Ú Ú ϩ
2000 ð ð ߐ
3456 Z Z Ś
10123 ï ï
20000

32767     翿
65536 | | ɼ
65537 } } ɽ



Publicado por: Mihura
Fecha de publicación: 17/Diciembre/2023 a las 11:00
No había mirado eso, yo los utilizo sólo para mostrarlos ....

Gracias, pitxiku.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Jehosuah
Fecha de publicación: 17/Diciembre/2023 a las 21:57
Gracias a los dos.
La solución de Pitxiku es lo que buscaba.
No conocía lo del texto enriquecido, pero veo que lo convierte en html, con lo cual me aparecen los datos en ese formato. Veo también que puedo indicar en los formularios, en las propiedades de los campos, que es texto enriquecido, y así se oculta el código html.
Pero tengo un nuevo problema: En los cuadros combinados no aparece la propiedad de texto enriquecido, con lo cual no puedo utilizar este control tan útil sin que aparezca el código html.
¿Alguna idea?


Publicado por: dokk
Fecha de publicación: 18/Diciembre/2023 a las 08:32
Hola Jehosuah.

Yo he hecho una prueba con el Alt+0433 del hilo anterior y me ha salido el carácter ± sin problema en campos de texto plano. ¿No es eso lo que quieres? ¿es otro el resultado que esperas? Lo he probado en dos equipos distintos y en ambos Access ha hecho lo mismo.

Respecto a lo del campo combinado, no se puede usar el texto enriquecido, pero creo que podrías usar la función PLAINTEXT para que el dato que tengas en rtf te salga en texto plano en el combo. Por ejemplo  con una consulta del tipo: SELECT PlainText(tuCampoRTF) As PTCampoRTF FROM tuTabla


-------------
Albert Hostein
Aprendiendo cayendo


Publicado por: dokk
Fecha de publicación: 18/Diciembre/2023 a las 09:04
Igual esto te puede ayudara a dar color a tus formularios →  https://www.isladogs.co.uk/add-query-colour/" rel="nofollow - Add Query Colour (isladogs.co.uk)

-------------
Albert Hostein
Aprendiendo cayendo


Publicado por: Mihura
Fecha de publicación: 18/Diciembre/2023 a las 10:28
Cierto es que yo sólo los uso para mostrar, no los guardo, pero es una pista a seguir:

https://accessaplicaciones.com/ejemplos.html#m02" rel="nofollow - Caracteres gráficos en listas, combos



-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Jehosuah
Fecha de publicación: 18/Diciembre/2023 a las 10:54
Gracias Dokk
El carácter a qué te refieres como 433 no es el que busco yo, ya que cuando pasa de 256 empieza otra vez por el 1.
No obstante, lo que dices del plaintext parece interesante, está tarde lo probaré.
Muchas gracias s todos


Publicado por: Jehosuah
Fecha de publicación: 18/Diciembre/2023 a las 22:04
Ya está,
Con el plaintext perfecto.
Ya puedo meter datos Unicode en un campo
y verlo en un cuadro combinado
con el texto enriquecido y el plaintext.
Muchas gracias a todos, y en especial a Dokk


Publicado por: Jehosuah
Fecha de publicación: 18/Diciembre/2023 a las 22:05
Podéis cerrar el hilo
Gracias



Imprimir página | Cerrar ventana