|
Responder
|
| Autor | |
Bepb
Habitual
Unido: 02/Febrero/2012 Localización: España Estado: Sin conexión Puntos: 162 |
Tema: Error de automatizaciónEnviado: 19/Marzo/2024 a las 17:21 |
|
Hola, Quiero crear un ArrayList para añadir elementos (Strings) al mismo y después ordenarlos para mostrarlos bien colocados, pero me da un error de automatización. Se trata de hacerlo en visualbasic en una macro del evento click. Llevo dos días intentando averiguar cual es el error y aún mirando por Internet y consultando no hay manera que averiguar porqué me da este mensaje al crear ese ArrayList. He llegado a pensar que no se pueden añadir un items desde una variable, pero lo he probado con un literal entre comillas y sigue dándome el mismo error en el Add. El código es el siguiente: Private Sub Menu_0101_boto_Click() Dim AccessosOrdenats As New ArrayList Accessosw = Mid(Me.Menu_0101_boto.Name, 6, 4) AccessosOrdenats.Add (Accessosw) Call OrdenarAccessos Me.AccUsuaris_accessos_txt.Value = Accessosww Me.Menu_0101_boto.Enabled = False End Sub Incluso he mirado de usar Colecciones o Arrays pero no veo claro como hacerlos para poder manejar los indices de los mismos, reescribirlos u ordenarlos con el método burbuja. ¿Alguien puede echarme una mano o aconsejarme en ese aspecto? Un saludo y gracias. José L.
|
|
|
Saludos desde Menorca. José Luis
|
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 19/Marzo/2024 a las 17:39 |
|
Hola,
Me ha sorprendido esa declaración "As New ArrayList" y lo he buscado por si me he perdido algo (que bien podría ser) Yo creo que eso de ArrayList lo has copiado de otro lenguaje (¿java?) y que no es lo que buscas. Creo recordar que WizHook podia hacer algo de lo que (intuyo) pides. Mira este enlace: Access y VBA -> WizHook (mvp-access.es) Un saludo
|
|
![]() |
|
Bepb
Habitual
Unido: 02/Febrero/2012 Localización: España Estado: Sin conexión Puntos: 162 |
Enviado: 20/Marzo/2024 a las 17:23 |
|
Hola Xavi, gracias por contestar, A ver, el Visualbasic 6.0 no lo he usado mucho, de hecho sólo en Macros de Formularios de Access, pero el ArrayList como no lo había usado lo estuve buscando en Internet y lo que pongo en el código es lo que varias páginas me indican, lo que creo es que puede ser que se confunda con .NET. En java desde luego no es, aunque se parece porque ese si lo he usado bastante y la definición es: Private ArrayList<String> array = new ArrayList<String>(); He buscado lo que me indicas del WizHook y lo he probado y no ordena: WizHook.SortStringArray MiArray Es verdad que de entrada miro el examinador de objetos y esta función no esta, pero la he incluido para probarlo, no da error de sintaxis(tampoco la daba la definición de ArrayList) luego examino los items del array y no los ordena. Al final he definido así el array y la ordenación burbuja y funciona correctamente: Dim AccessosOrdenats(75) As String Dim indexAccessos As Integer Private Sub OrdenarAccessos() Dim i As Integer Dim j As Integer Dim k As Integer Dim AccessosAux As String For i = 1 To indexAccessos For j = 0 To indexAccessos - i If AccessosOrdenats(j) > AccessosOrdenats(j + 1) Then AccessosAux = AccessosOrdenats(j) AccessosOrdenats(j) = AccessosOrdenats(j + 1) AccessosOrdenats(j + 1) = AccessosAux End If Next j Next i Accessosww = "" For k = 0 To indexAccessos If k > 0 Then Accessosww = Accessosww & ", " End If Accessosww = Accessosww & AccessosOrdenats(k) Next k End Sub Yo creo que o estoy usando un VB antiguo (aunque el Access es el 2019) y habrá funciones instaladas y otras que no, supongo que tendré que averiguarlo. Un saludo. |
|
|
Saludos desde Menorca. José Luis
|
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 20/Marzo/2024 a las 17:50 |
|
Bepd,
Si que funciona, yo lo he usado ... ¿has inicializado el valor KEY como dice Happy en su artículo? Ya puestos a realizar cosas raras podrías crearte una tabla en ADO, cargarle los valores que quieras, ordenarla con el método SORT y después listarla ... esta opción es particularmente útil cuando tienes muchos campos y sólo ordenas por uno. |
|
![]() |
|
Bepb
Habitual
Unido: 02/Febrero/2012 Localización: España Estado: Sin conexión Puntos: 162 |
Enviado: 20/Marzo/2024 a las 18:21 |
|
Hola Jesús, Precisamente en el enlace que me indica Xavi, se dice que esta función (WizHook) con el método de ordenar (SortStringArray) no precisa definir Key. También es buena opción crear una tabla provisional para ordenar los items, era por no añadir más tablas a la aplicación, ya tengo un montón, de todas formas muchas gracias. Un saludo. |
|
|
Saludos desde Menorca. José Luis
|
|
![]() |
|
Bepb
Habitual
Unido: 02/Febrero/2012 Localización: España Estado: Sin conexión Puntos: 162 |
Enviado: 21/Marzo/2024 a las 16:45 |
|
Se puede cerrar el tema. Gracias
|
|
|
Saludos desde Menorca. José Luis
|
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 21/Marzo/2024 a las 16:58 |
|
Una cosa, crearte una tabla ADO (sin guardarla) no añade ninguna tabla a la aplicación, es virtual.
Un saludo.
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |