Ваш цикл:
Do Until adoRecordset.EOF
strList = strList & adoRecordSet.Fields("name").Value & ","
adoRecordset.MoveNext
loop
помещает последний / завершающий / завершающий "," в конец strList.Split () обрабатывает "," как разделитель (не терминатор), поэтому результирующий массив имеет ложный последний пустой элемент.
Чтобы избежать этого, вы можете объединить "," & value
в цикле и убрать предыдущий ", используя Mid ().Но почему бы не использовать «SELECT COUNT» или Recordset.Count для измерения массива перед циклом и присвоения значений его элементам, или - что еще лучше - Recordset.GetRows () для прямого получения (хотя и 2 тусклого) массива ->без конкатов, без сплитов, без проблем.