Предположим, у вас есть 5 элементов управления в форме, и их порядок табуляции выглядит следующим образом
Index - TabIndex
1 - 0
2 - 1
3 - 2
4 - 3
5 - 4
Если вы измените 3 на 1, тогда это будет выглядеть так
Index - TabIndex
1 - 0
2 - 2
3 - 1
4 - 3
5 - 4
Visual Basic автоматически увеличится на один все таб-индекс, равный и превышающий назначенный вами. Никогда не будет времени, когда два элемента управления будут иметь одинаковый tabindex. Это вызывает проблемы для подпрограмм, которые назначают индексы вкладок, как у вас.
Вам нужно не назначать tabindex непосредственно из базы данных, а создавать массив управляющих индексов, связанных с индексами вкладок. Сортируйте его на основе tabindex, а затем начинайте присваивать, начиная с того, что находится в tabindex 0 (или самом низком).