VB.net excel заполняет только один элемент в строке

#excel #vb.net #for-loop #oledb

#excel #vb.net #for-цикл #oledb

Вопрос:

Я работаю над инструментом автоматического соответствия требованиям и столкнулся со следующей проблемой:

Я создаю таблицу Excel, которая в настоящее время выглядит следующим образом (используя фиктивные данные из-за данных компании):

введите описание изображения здесь

но на самом деле должно выглядеть примерно так (не фактические данные):

введите описание изображения здесь

информация извлекается из базы данных с помощью следующего запроса в вызываемой функции getRightsForPath() :

 "SELECT DUMPSEC.rights 
 FROM DUMPSEC
 WHERE DUMPSEC.location ='" amp; sql2 amp; "'
 AND DUMPSEC.members = '" amp; sql1 amp; "'"
  

и это цикл, который должен позаботиться о правах, добавляемых в нужную ячейку:

 For i = 1 To groupCounter Step  1
    Dim rights = getRightsForPath(sourceLocation, xlWorksheet.Cells(2, i   1).Value, xlWorksheet.Cells(Row, 1).Value)

        Do While rights.Read()

            xlWorksheet.Cells(Row, i   1) = rights("rights")
            //MessageBox.Show(locations("location") amp; ", " amp; groupOwnerOf("groupname") amp; ", " amp; rights("rights"))

         Loop

Next
Row  = 1
  

Ответ №1:

хорошо, я понял это сам, я забыл поместить все это в цикл и проверить, какие строки нужно выполнить (как показано в этом коде)

 For Row = 3 To locationCount Step  1
    For i = 2 To groupCounter   1 Step  1
        Dim rights = getRightsForPath(sourceLocation, xlWorksheet.Cells(2, i).Value, xlWorksheet.Cells(Row, 1).Value)
        Do While rights.Read()
            xlWorksheet.Cells(Row, i) = rights("rights")
        Loop
    Next
Next