Страницы: 1
RSS
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
 
Есть форма. При вводе символов в какое-либо поле и двойном клике по полю получаем результат после "фильтрации". Тут все работает. Добавление, удаление записей тоже работает стабильно. Но ошибка в том, что если я выберу какую-то запись в листбоксе, то всегда выбирается последняя. Не могу разобраться, где баг. Пожскажите, пожалуйста, буду весьма признателен
 
Код
            '.........................................
            Worksheets("Результат").Cells(i + 2, 19).Value = ListBox1.List(i, 18)
            Exit For
    End If
    '...........................................
Согласие есть продукт при полном непротивлении сторон
 
Sanja,  Если я правильно понял, то необходимо было добавить Exit For, добавил. Проблема осталась  
 
Код
    For Each c In Sheets("Sayfa1").Range("A2:A" & Sheets("Sayfa1").Range("A" & Rows.Count).End(xlUp).Row)
        If c = selectedName Then


Наверно колонка не только "A" должна быть, а еще та, где имя указано.
Так как у вас даты одинаковые он первую строку из листа и берет
Изменено: vl.sl - 27.05.2019 15:20:51
 
Сделайте отладку с этой строки и поймете о чем я.
 
vl.sl, не понимаю
 
Цитата
vl.sl написал:
он первую строку из листа и берет
Последнюю строку берет
 
При клике Вы вносите данные в текстбокс.
Только вот не с листбокса, а с листа1 в excel.
Вы вносите данные путем перебора дат.
Первую дату вы берете из строки листбокса, на которую кликнули.
Вторую берете из листа excel.
Если они одинаковые, то значения из листа вы вности в текстбоксы.
Не глупо ли?
Ведь у вас первая дата совпадает.
Варианты решения: указывать точные данные, которые не будут повторяться (если дата то до секунд; или включить в проверку еще и фамилию)
 
Еще вариант. Просто убрать эти строки
Код
    For Each c In Sheets("Sayfa1").Range("A2:A" & Sheets("Sayfa1").Range("A" & Rows.Count).End(xlUp).Row)
        If c = selectedName Then
           
            'TextBox1.Text = Sheets("Sayfa1").Cells(c.Row, 2)
            Me.Tbx11.Value = Sheets("Sayfa1").Cells(c.Row, 1)
            Me.Tbx12.Value = Sheets("Sayfa1").Cells(c.Row, 2)
            Me.Tbx13.Value = Sheets("Sayfa1").Cells(c.Row, 3)
            Me.Tbx14.Value = Sheets("Sayfa1").Cells(c.Row, 4)
            Me.Tbx15.Value = Sheets("Sayfa1").Cells(c.Row, 5)
            Me.Tbx16.Value = Sheets("Sayfa1").Cells(c.Row, 6)
            Me.Tbx17.Value = Sheets("Sayfa1").Cells(c.Row, 7)
            Me.Tbx18.Value = Sheets("Sayfa1").Cells(c.Row, 8)
            Me.Tbx19.Value = Sheets("Sayfa1").Cells(c.Row, 9)
            Me.Tbx20.Value = Sheets("Sayfa1").Cells(c.Row, 10)
            Me.Tbx21.Value = Sheets("Sayfa1").Cells(c.Row, 11)
            Me.TBx22.Value = Sheets("Sayfa1").Cells(c.Row, 12)
            Me.TBx23.Value = Sheets("Sayfa1").Cells(c.Row, 13)
            Me.Tbx24.Value = Sheets("Sayfa1").Cells(c.Row, 14)
            Me.Tbx25.Value = Sheets("Sayfa1").Cells(c.Row, 15)
            Me.Tbx26.Value = Sheets("Sayfa1").Cells(c.Row, 16)
            Me.Tbx27.Value = Sheets("Sayfa1").Cells(c.Row, 17)
            Me.Tbx28.Value = Sheets("Sayfa1").Cells(c.Row, 18)
            Me.Tbx29.Value = Sheets("Sayfa1").Cells(c.Row, 19)
        End If
    Next c
Изменено: vl.sl - 27.05.2019 15:39:54
 
Вам виднее зачем вы перезаписываете значения полей.
 
vl.sl,Разобрался. Я просто не в той процедуре менял диапазон. Спасибо большое, очень сильно протупил
 
kidly, Пожалуйста. Пользуйтесь точкой останова, она помогает ошибки фиксить.
Страницы: 1
Наверх