Introducir un un Combo un gran numero de datos

El tema en cuestión es que me resulta imposible añadir una gran cantidad de elementos en un cuadro combinado. Me explico, lo que tengo que hacer es introducir en el combo los nombres de los documentos que se encuentran en una carpeta especifica(Dichos nombres son bastante largos). Para ello, lo que he hecho es crear una variable String con los nombres de dichos documentos. A continuación le doy a la propiedad .Rowsource del combo el valor de dicha variable String, pero es aquí donde me surge el problema. Si el numero de archivos que se encuentran en la carpeta es alto, el combo no me funciona; No se si es porque el cuadro combinado no admite una gran cantidad de elementos o porque la variable String no soporta la longitud necesaria para incluir todos los documentos, lo que produce el consecuente error. Adjunto el código para aclararme:
Dim TotalDocumentos As String
Private Sub Form_Load() Rellenar
Combo.RowSourceType = "lista de valores"
Combo.RowSource = TotalDocumentos '= valores de la carpeta
Combo.ListRows = 4
End Sub
Private Sub Rellenar()
Dim sist, carpet, docum, archivos, a
Set sist = CreateObject("Scripting.FileSystemObject")
Set carpet = sist.GetFolder("Carpeta con los Documentos")
Set archivos = carpet.Files
For Each docum In archivos a = "'" + docum.Name + "'" + ";"
TotalDocumentos = TotalDocumentos + a
Next
End Sub
En definitiva, estoy desesperado y me gustaría conocer una manera para arreglar este problemilla.
Muchas gracias de antemano por la respuesta.
Respuesta
1
Lo mejor es tener todos esos nombres en una tabla de la base de datos y en el rowsource del combo colocas el nombre de la tabla y listo.
El tema no es tan sencillo.
A pesar de que se podría hacer eso de manera sencilla, el problema es que los documentos de la carpeta no siempre serán los mismos, ya que se añadirán nuevos, borraran los existentes...
Entonces cada vez que inicie la BD e incluso durante su ejecución tendría que estar creando la tabla, o editandola nuevamente.
No creo que sea un buen método, estar actualizando toda la tabla cada dos por tres.
A pesar de todo muchas gracias por responderme, y más por hacerlo tan rapido.
Por lo que entiendo tu seleccionas una carpeta y quieres que automáticamente te aparezcan en un combo todos los archivos que están en esa carpeta específica, si es así todo es tan simple
Colocas un evento que se active cuando tu seleccionas la carpeta, luego que se ejecute al código antes mencionado que elimina los datos anteriores de la tabla e ingresa los nuevos.
Gracias una vez más por contestarme.
Definitivamente voy a hacer lo que tu me aconsejas que para eso eres el experto.
Muchísimas gracias. Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas