powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / datagrid и выделенные строки
25 сообщений из 29, страница 1 из 2
datagrid и выделенные строки
    #33682852
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть 2-е даты и 2-е датагрида
по нжатию кнопки происходит вот такая штука:
Data_xls.Recordset.Fields("Uid").Value = data_class.Recordset.Fields("uid").Value
Подскажите плизз можно сделать так чтобы в первую таблицу в выделенные строки вносились изменения.
т.е. сейчас происходит в одну строку проставляеться из одной строки, а мне нуна что бы было: в множество из одной !
Заранее спасибо
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33683483
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос открыт)))
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33683680
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с датагридом не работал, но вероятно там есть такое св-во, как BOOKMARK
поиграйся с ним
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33685854
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос еще открыт
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686003
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народная мудрость гласит: Правильно заданный вопрос - половина ответа.
А я ваш вопрос вообще не могу понять.
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686169
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНародная мудрость гласит: Правильно заданный вопрос - половина ответа.
А я ваш вопрос вообще не могу понять.
у меня есть 2 datagrid.
нужно выделить в первой несколько строк и по нажатию кнопки записать в определенные столбцы выделенных строк данные из активной записи 2-го грида.
Так понятно?
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686204
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDN
Property SelBookmarks
Member of MSDataGridLib.DataGrid
Contains a collection of selected row bookmarks
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686333
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Оба грида имеют одинаковый набор полей?
- И если нет, то как идентифицировать совпадение выделенных строк второго грида?
- И как быть если в первом выделили 3 строки а во втором - 2?
- А может быть вам надо в Любые соседние ячейки положить данные из любых строк первого грида?
Тогда надо выделить N строк в первом гриде и одну во втором.
А может, это неприемлимо?

Короче, вот пример-затравка для решения (но не более):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset
   Dim s As String
   Dim Item As Variant
   s = ""
   Set rs = rsGrid.Clone
   For Each Item In DataGrid1.SelBookmarks
      rs.Move Item,  0 
      s = s & rs( 3 ) & vbCrLf
   Next
   MsgBox s
End Sub
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686390
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере - ошибка (особо не старался).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset
   Dim s As String
   Dim Item As Variant
   s = ""
   Set rs = rsGrid.Clone
   For Each Item In DataGrid1.SelBookmarks
      rs.MoveFirst
      rs.Move Item -  1 
      s = s & rs( 3 ) & vbCrLf
   Next
   MsgBox s
End Sub
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686449
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffВ примере - ошибка (особо не старался).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset
   Dim s As String
   Dim Item As Variant
   s = ""
   Set rs = rsGrid.Clone
   For Each Item In DataGrid1.SelBookmarks
      rs.MoveFirst
      rs.Move Item -  1 
      s = s & rs( 3 ) & vbCrLf
   Next
   MsgBox s
End Sub

Worobjoff выдает ошибку type mismatch на rs.Move Item - 1
item = ?"квадрат"
вообще ничего не понимаю
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686481
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff- Оба грида имеют одинаковый набор полей?
нет
- И если нет, то как идентифицировать совпадение выделенных строк второго грида?
человек вручную выделяет строку во 2 гриде

а как далбше использовать строку s???
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686483
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тест ошибки?
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686514
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffТест ошибки?
всысле тест?
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686523
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686525
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub Command1_Click()
Dim s As String
Dim Item As Variant
s = ""
Set rs = Data_xls.Recordset.Clone
For Each Item In DBGrid_xls.SelBookmarks
rs.MoveFirst
rs.Move Item - 1
s = s & rs(3) & vbCrLf

Next
MsgBox s

End Sub
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686530
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
run-time error '13'
type mismatch
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686554
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не поставил проверку на Bookmak = Null
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset
   Dim rs2 As ADODB.Recordset
   Dim Item As Variant
   Set rs = rsGrid.Clone
   Set rs2 = rsGrid2.Clone
   SetBookmarkFor_rsTarget rs2
   For Each Item In DataGrid1.SelBookmarks
      If IsNumeric(Item) Then 'Item-û áûâàþò Null èëè Empty
         rs.MoveFirst
         rs.Move Item -  1 
         rs2("ÏîëåÕ") = rs("ÏîëåY")
         rs2.MoveNext
      End If
   Next
End Sub

Private Sub SetBookmarkFor_rsTarget(ByRef rs As ADODB.Recordset)
   Dim i As Long
   Dim Item As Variant
   i =  0 
   'Íàõîäèì ñòàðòîâóþ ïîçèöèþ (íàèìåíüøóþ)
   For Each Item In DataGrid2.SelBookmarks
      If IsNumeric(Item) Then
         If i =  0  Then
            i = Item
         Else
            If i < Item Then i = Item
         End If
      End If
   Next
   'Ñòàâèì íà íåå ðåêîðäñåò
   rs.MoveFirst
   rs.Move i -  1 
End Sub
И еще надо проверки на rs.Recordcount = 0 ставить
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686605
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНе поставил проверку на Bookmak = Null
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset
   Dim rs2 As ADODB.Recordset
   Dim Item As Variant
   Set rs = rsGrid.Clone
   Set rs2 = rsGrid2.Clone
   SetBookmarkFor_rsTarget rs2
   For Each Item In DataGrid1.SelBookmarks
      If IsNumeric(Item) Then 'Item-û áûâàþò Null èëè Empty
         rs.MoveFirst
         rs.Move Item -  1 
         rs2("ÏîëåÕ") = rs("ÏîëåY")
         rs2.MoveNext
      End If
   Next
End Sub

Private Sub SetBookmarkFor_rsTarget(ByRef rs As ADODB.Recordset)
   Dim i As Long
   Dim Item As Variant
   i =  0 
   'Íàõîäèì ñòàðòîâóþ ïîçèöèþ (íàèìåíüøóþ)
   For Each Item In DataGrid2.SelBookmarks
      If IsNumeric(Item) Then
         If i =  0  Then
            i = Item
         Else
            If i < Item Then i = Item
         End If
      End If
   Next
   'Ñòàâèì íà íåå ðåêîðäñåò
   rs.MoveFirst
   rs.Move i -  1 
End Sub
И еще надо проверки на rs.Recordcount = 0 ставить
извини меня но я в этом просто полный дуб. можно поподробнее описание и желательно на русском))
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686642
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прога определяет что во втором гриде выбрана 2-ая строка(напр), а с первым гридом никак item = "[]?"
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686919
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Private Sub Command1_Click()
   Dim rs As ADODB.Recordset     'Рекордсет которым "роемся" в первом наборе данных
   Dim rs2 As ADODB.Recordset    'Рекордсет которым пишем во второй набор данных
   Dim Item As Variant           'Каким типом перебираем SelBookmarks - не знаю. Поэтому Variant
   Set rs = rsGrid.Clone         'Используем только клоны рекордсета-источнка данных грида
   Set rs2 = rsGrid2.Clone       '(для Adodc - Adodc1.Recordset.Clone)
   SetBookmarkFor_rsTarget rs2
   For Each Item In DataGrid1.SelBookmarks
      If IsNumeric(Item) Then 'Item-ы бывают Null или Empty
         rs.MoveFirst         'здесь Item - это Bookmark,
         rs.Move Item -  1      'значит тупой сдвиг от начала на Bookmark записей, даст нам то что надо
         rs2("ПолеХ") = rs("ПолеY")    'Это копирование нужных данных
         rs2.MoveNext         'Перемещаем на следующую запись получатель данных
      End If
   Next
End Sub
'Установка позиции рекордсета-приемника данных на первую выделенную строку во втором гриде
'т.к. SelBookmarks - не отсортированы
'Можно было просто  rs.Move DataGrid2.Bookmark
Private Sub SetBookmarkFor_rsTarget(ByRef rs As ADODB.Recordset)
   Dim i As Long
   Dim Item As Variant
   i =  0 
   'Находим стартовую позицию (наименьшую)
   For Each Item In DataGrid2.SelBookmarks
      If IsNumeric(Item) Then
         If i =  0  Then
            i = Item
         Else
            If i < Item Then i = Item
         End If
      End If
   Next
   'Ставим на нее рекордсет и потом будем двигаться от нее на шаг в каждом цикле
   rs.MoveFirst
   rs.Move i -  1 
End Sub
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33686981
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff а почему он никак не может определить что выбрано в первом гриде.
до этого кода он не доходит
rs.MoveFirst 'здесь Item - это Bookmark,
rs.Move Item - 1 'значит тупой сдвиг от начала на Bookmark записей, даст нам то что надо
rs2("ПолеХ") = rs("ПолеY") 'Это копирование нужных данных
rs2.MoveNext 'Перемещаем на следующую запись получатель данных
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33687003
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в гриде-то выбрано что-нибудь?
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33687027
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffА в гриде-то выбрано что-нибудь?
ага 3 строки. он определяет item = "[]?"
и уходит на end if.
Может быть потому что grid даовский???
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33687037
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вот! DAO или ADO, это ведь то же надо уточнять в вопросе!
с DAO никогда я не работал.
...
Рейтинг: 0 / 0
datagrid и выделенные строки
    #33687047
ba4inskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНу, вот! DAO или ADO, это ведь то же надо уточнять в вопросе!
с DAO никогда я не работал.
Спасибо за помощь!!! буду переделывать в адо
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / datagrid и выделенные строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]