True DBGrid Pro 7.0 - как в цикле прочитать значения unbound-столбца? - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте!
В базе данных есть таблица с наименованиями параметров.
Грид прицеплен к этой таблице, и у него есть еще один unbound-столбец для ручного ввода. Необходимо внести в базу данных значения этого столбца.
Исходный код:

Проблема в том, что визуально все в порядке (т.е. введенные значения в ячейках остаются), но когда начинаешь в цикле перемещаться по гриду, для того, чтобы заполненные ячейки внести в БД, то каждый раз получаешь только последнее введенное значение.

Никак не могу понять, в чем проблема, такое ощущение, что перемещения по гриду не происходит.
Помогите, кто может...

Решение задачи: «True DBGrid Pro 7.0 - как в цикле прочитать значения unbound-столбца?»

textual
Листинг программы
<font color="blue">Dim</font> rs_c <font color="blue">As</font> ADODB.Recordset   <font color="00AA00">' Клон</font>
    
    <font color="blue">Const</font> ColNameZnach <font color="blue">As</font> <font color="blue">Integer</font> = <font color="darkblue"><b>2</b></font>   <font color="00AA00">' Имя/позиция столбца с ручным вводом</font>
    <font color="blue">Const</font> ColNameId <font color="blue">As</font> <font color="blue">String</font> = <font color="teal">"Potoki_id"</font>
    <font color="blue">Const</font> ColNameName <font color="blue">As</font> <font color="blue">String</font> = <font color="teal">"Name"</font>
    
    <font color="blue">Const</font> MaxZnach = <font color="darkblue"><b>200</b></font>      <font color="00AA00">' Макс. кол-во значений ручного ввода. Знаю, нехорошо таким образом ограничивать массив, но пока так...</font>
    <font color="blue">Dim</font> Znach(MaxZnach) <font color="blue">As</font> <font color="blue">Double</font>            <font color="00AA00">' массив значений</font>


<font color="blue">Private</font> <font color="blue">Sub</font> TDBGrid1_BeforeUpdate(Cancel <font color="blue">As</font> <font color="blue">Integer</font>)
    
    rs_c.Bookmark = TDBGrid1.Bookmark
    Znach(rs_c.Fields(ColNameId)) = TDBGrid1.Columns(ColNameZnach).Value   <font color="00AA00">'Запоминаем в массиве введенное значение</font>
    
<font color="blue">End</font> <font color="blue">Sub</font>

<font color="blue">Private</font> <font color="blue">Sub</font> TDBGrid1_UnboundColumnFetch(Bookmark <font color="blue">As</font> Variant, <font color="blue">ByVal</font> Col <font color="blue">As</font> <font color="blue">Integer</font>, Value <font color="blue">As</font> Variant)
    
    rs_c.Bookmark = Bookmark    <font color="00AA00">' Передвинулись в клоне на этот же ряд</font>
   
    Value = Znach(rs_c.Fields(ColNameId))        <font color="00AA00">' Присвоили ячейке значение из массива</font>
    
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы