¿Cómo puedo cambiar la letra N por la Ñ en un formulario creado con el programa Microsoft Access?

En un formulacio como se hace para que en el campo texto automáticamente al ingresar un Ñ se cambie por una N.

1 Respuesta

Respuesta
1
En Access no hay un evento que se ejecute cada vez que se pulsa una tecla dentro de un campo.
Tendrías que esperar a que se acabe de rellenar el campo y añadir código al evento AfterUpdate (después de actualizar) del control.
Supongamos que tu control se llama txtPrueba.
En modo diseño lo seleccionas, abres la hoja de propiedades, selecciona la pestaña Eventos, y haz doble clic en el campo que está a la derecha del texto "Después de actualizar". Se escribirá Procedimiento de evento.
Haz clic en el botón que hay a la derecha, el que tiene tres puntos, y en el código pones:
dim i as integer
dim salida as string
for i = 1 to len(txtPrueba)
if mid(txtPrueba.Text,i,1)="Ñ" then
salida = salida & "N"
else
salida = salida & txtPrueba.Text,i,1)
endif
me.txtPrueba.value = salida
Gracias por la respuesta lo voy a hacer y le comento... ud seria tan amable de ayudarme con otra inquietud, tengo una base de inscripciones a un programa existe un tabla principal donde están todos los datos de los que se inscriben y las otras tablas complementa esta información, por ejemplo hay una tabla de Departamentos (Estados), que incluye Nombre Departamento, código departamento, Ciudad, Código Ciudad, lo que quiero es que en el formulario en un cuadro combinado se muestre el Departamento y en el cuadro de ciudades solo me muestre las ciudades ligadas a este departamento, así mismo que en la tabla de inscripciones me guarde el código del departameto y ciudad y no los nombres, le agradezco y perdona tanto problema, en lo que me pueda colaborar se lo agradezco.
Gracias
Ok
Para eso tienes que hacer que cambie el origen de datos del cuadro combinado de ciudades cada vez que cambia el Departamento.
Supongamos que tienes un control que se llama cDepartamento, y un combinado con las ciudades que se llama cCiudades.
En diseño del formulario abre la ventana de propiedades del campo cDepartamento, y en la pestaña Eventos haz doble clic, hasta que aparezca el texto "Procedimiento de evento".
Haz clic en el botón que tiene tres puntos que está a la derecha y entrarás en el editor de código
Teclea entonces:
cCiudades.RowSource = "SELECT ciudad FROM Departamentos GROUP BY ciudad HAVING (NombreDepartamento =' " & cDepartamento & " ' );"
Creo que con esto debería bastar.
Cierra y guarda el formulario e inténtalo. Si no funciona dímelo y lo revisaremos.
Que tal...
1. Para el cambio de N por Ñ introduje el código.
Dim i As Integer
Dim salida As String
For i = 1 To Len(PRIM_NOM_BENEF)
If Mid(PRIM_NOM_BENEF.Text, i, 1) = "Ñ" Then
salida = salida & "N"
Else
salida = salida & PRIM_NOM_BENEF.Text,i,1)
End If
Me.PRIM_NOM_BENEF.Value = salida
pero en salida = salida & PRIM_NOM_BENEF.Text,i,1).  presenta error de complilacion, error de sintaxis.
2. La tabla de donde se encuentran los datos se llama DEPTOS_MCPIOS y tiene los campos CÓDIGO DEPTO, NOMBRE DEPARTAMENTO, CÓDIGO MUNICIPIO, NOMBMUNICIPIO
igrese el siguiente codigo.
Private Sub DEPTO_ENTREGA_BeforeUpdate(Cancel As Integer)
NOMBMUNICIPIO.RowSource = "SELECT NOMBMUNICIPIO FROM DEPTOS_MCIPIOS GROUP BY NOMBMUNICIPIO HAVING (NOMBRE DEPARTAMENTO=' " & CODIGO DEPTO & " ' );"
End Sub
Pero igual me aparece error de sintaxis, no se donde me equivoque.
Le agradezco su ayuda.
Gracias
Si quieres verlo más claro puedes cambiarlo por esto:
Dim i As Integer, salida As String, caracter As String
For i = 1 to len(PRIM_NOM_BENEF)
        caracter = Mid(PRIM_NOM_BENEF,i,1)
        If caracter = "Ñ" Then
              salida = salida & "N"
         Else
               salida= salida & caracter
          endif
Next
--------------------------------------------------------------------------
Punto 2
Hay un error en la sentencia SQL, perdón. Se trata de la cláusula GROUP BY. Te reescribo la sentencia y como suelo escribirlas yo, me parece que es práctico y pienso ayuda a entenderlo mejor (las comillas deberían estar alineadas):
NOMBMUNICIPIO.RowSource = "SELECT NOMBMUNICIPIO  " & _
                                                     " FROM DEPTOS_MCPIOS " & _
                                                     " GROUP BY (NOMBMUNICIPIO, DEPARTAMENTO) " & _
                                                     " HAVING (DEPARTAMENTO = '" & CODIGO_DEPTO & "') " & _
                                                     " ORDER BY NOMBMUNICIPIO;"
Cosas a tener en cuenta:
- Los paréntesis siempre tienen que cerrar
- El orden para consultas agrupadas es el que he escrito: SELECT, FROM, GROUP. Having, order
- Para el HAVING, siempre que uses parámetros hay que tener en cuenta que según el tipo de datos del parámetro hay que poner delimitadores: si es una cadena los delimitadores son comilla simple, si son números no hay delimitadores, si son fecha son almohadillas #. Cuidado con esto que fastidia mucho

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas