Access 2010 inserta imágenes y ordenar columnas

Tengo dos problemas con Access 2010:
1) Intento ordenar un cuadro de textos con valores numéricos, es decir los ordena 1, 10, 11, 2, 3, ... Y quiero que lo haga 1, 2, 3, ..., 10, 11, etc. El problema es que he recurrido a la Ayuda y plantean la siguiente expresión: Expr1: IIf([Fieldname] Is Null, 0, Val([Fieldname])), esta expresión no me funciona (errores de sintaxis, comas, etc.) he probado a modificar el nombre del campo, las comillas, etc. No hay manera.
2) En la misma base tengo unos 2000 registros de los cuales 1500 llevan una foto, he insertado algunas mediante un campo de datos adjuntos, pero el tamamño de la base se me dispara, ¿hay alguna solución?.

1 respuesta

Respuesta
1
Supongamos que el campo se llama NumTxt y es de texto, si lo quieres ordenar lo tendrás que pasar a numérico: Val([NumTxt]). Por ejemplo en un cuadro combinado sería:
En origen de la fila pones:
Select NumTxt from NombreTabla order by val([NumTxt])
Respecto de la 2ª pregunta, no lo se, ya que nunca he trabajado con imágenes, lo siento.
Me cuentas.
Hola Angeles:
Lo primero muchas gracias por tu respuesta.
No he conseguido que se me ordenen los valores. He seguido tus instrucciones: he cambiado el campo de texto ha combinado y en origen de la fila he puesto:
Select Nº de inventario from CERÁMICA order by val([Nº de inventario])
Nº de inventario es el campo y CERÁMICA es el nombre de la tabla. He probado a cambiar de Tabla/consulta a Lista de valores y de campos y tampoco me ha funcionado. También he hecho el cambio tanto en el diseño de la tabla como en el del formulario y algo debo de estar haciendo mal porque no me ordena los valores del campo.
Muchas gracias por tu tiempo.
No se lo que puede ser, con la función Val() debería de funcionar. Si te parece me mandas la BD (en access 2003) y la echo un vistazo.
[email protected]
Hola Ángeles:
Tu primera respuesta me hizo pensar y he encontrado gracias a ella una solución fácil. De la tabla original he creado una consulta sencilla con todos los campos y en el Diseño he agregado un último campo o columna (no sé muy bien el lenguaje técnico) y he puesto la siguiente expresión:
Expr1: Val([N° de inventario])
Y luego ordenar ascendente y lo ordena.
Un pequeño problemilla es que algunos campos tienen A, B, C, ... (100a, 100b, ...) y de esta manera no los ordena pero ahora es un mal menor.
Tal vez esta solución era la que me proponías desde el principio y no supe poner la expresión en su sitio. En cualquier caso muchas gracias por tu ayuda, me ha sido muy útil.
Un saludo
Iñigo
Sí, era eso, más o menos, lo que te quería decir. En cuanto a la combinación números - letras... eso es más complicado. Yo te aconsejaría que el campo, ya que tiene que ser de texto, tuviese siempre el mismo número de caractares y de ese modo podrías ordenar sin ningún tipo de problemas. Es decir, por ejemplo que fuesen 5 caracteres, te quedaría algo así:
00001
00002
0100A
...
Si te decides por esto, te puedo pasar un código para añadir ceros a la izquierda.
Hola:
Para este caso no me preocupa el tema de las letras pero sí me interesa el código que comentas, muchísimas gracias.
Mi correo: [email protected]
Un saludo
Este es el código:
Function RellenaCeros()
Dim db As Database
Dim vCampo As String
Dim vLongitud As Integer
Dim rs As Recordset
Set db = CurrentDb()
Set rs = DB.OpenRecordset("Select CampoARellenar From NombreTabla")
Do While Not RS.EOF
RS.Edit
VCampo = rs!CampoARellenar
vlongitud = Len(Trim(vCampo))
'LEN ---> Cuenta la longitud de la cadena TRIM ---> Quita los espacios en
'blanco a la izquierda y derecha (LTRIM, RTRIM)
vlongitud = 5 - vLongitud 'Si el ancho del campo es 5
VCampo = String(vLongitud, "0") + Trim(VIMP)
'STRING ---> Rellena con un caracter "0" un nº determinado de espacios vLongitud
rs!CampoARellenar = vCampo
RS.Update
RS.MoveNext
Loop
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas