Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / datagrid и выделенные строки / 25 сообщений из 29, страница 1 из 2
21.04.2006, 14:45
    #33682852
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
у меня есть 2-е даты и 2-е датагрида
по нжатию кнопки происходит вот такая штука:
Data_xls.Recordset.Fields("Uid").Value = data_class.Recordset.Fields("uid").Value
Подскажите плизз можно сделать так чтобы в первую таблицу в выделенные строки вносились изменения.
т.е. сейчас происходит в одну строку проставляеться из одной строки, а мне нуна что бы было: в множество из одной !
Заранее спасибо
...
Рейтинг: 0 / 0
21.04.2006, 17:21
    #33683483
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
вопрос открыт)))
...
Рейтинг: 0 / 0
21.04.2006, 18:35
    #33683680
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
с датагридом не работал, но вероятно там есть такое св-во, как BOOKMARK
поиграйся с ним
...
Рейтинг: 0 / 0
24.04.2006, 12:20
    #33685854
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
вопрос еще открыт
...
Рейтинг: 0 / 0
24.04.2006, 13:05
    #33686003
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Народная мудрость гласит: Правильно заданный вопрос - половина ответа.
А я ваш вопрос вообще не могу понять.
...
Рейтинг: 0 / 0
24.04.2006, 14:00
    #33686169
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
WorobjoffНародная мудрость гласит: Правильно заданный вопрос - половина ответа.
А я ваш вопрос вообще не могу понять.
у меня есть 2 datagrid.
нужно выделить в первой несколько строк и по нажатию кнопки записать в определенные столбцы выделенных строк данные из активной записи 2-го грида.
Так понятно?
...
Рейтинг: 0 / 0
24.04.2006, 14:08
    #33686204
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
MSDN
Property SelBookmarks
Member of MSDataGridLib.DataGrid
Contains a collection of selected row bookmarks
...
Рейтинг: 0 / 0
24.04.2006, 14:44
    #33686333
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
- Оба грида имеют одинаковый набор полей?
- И если нет, то как идентифицировать совпадение выделенных строк второго грида?
- И как быть если в первом выделили 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
24.04.2006, 15:00
    #33686390
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
В примере - ошибка (особо не старался).
Код: 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
24.04.2006, 15:15
    #33686449
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
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
24.04.2006, 15:21
    #33686481
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Worobjoff- Оба грида имеют одинаковый набор полей?
нет
- И если нет, то как идентифицировать совпадение выделенных строк второго грида?
человек вручную выделяет строку во 2 гриде

а как далбше использовать строку s???
...
Рейтинг: 0 / 0
24.04.2006, 15:22
    #33686483
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Тест ошибки?
...
Рейтинг: 0 / 0
24.04.2006, 15:29
    #33686514
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
WorobjoffТест ошибки?
всысле тест?
...
Рейтинг: 0 / 0
24.04.2006, 15:31
    #33686523
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Текст
...
Рейтинг: 0 / 0
24.04.2006, 15:31
    #33686525
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
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
24.04.2006, 15:33
    #33686530
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
run-time error '13'
type mismatch
...
Рейтинг: 0 / 0
24.04.2006, 15:39
    #33686554
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Не поставил проверку на 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
24.04.2006, 15:53
    #33686605
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
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
24.04.2006, 16:04
    #33686642
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
прога определяет что во втором гриде выбрана 2-ая строка(напр), а с первым гридом никак item = "[]?"
...
Рейтинг: 0 / 0
24.04.2006, 17:26
    #33686919
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Код: 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
24.04.2006, 17:44
    #33686981
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Worobjoff а почему он никак не может определить что выбрано в первом гриде.
до этого кода он не доходит
rs.MoveFirst 'здесь Item - это Bookmark,
rs.Move Item - 1 'значит тупой сдвиг от начала на Bookmark записей, даст нам то что надо
rs2("ПолеХ") = rs("ПолеY") 'Это копирование нужных данных
rs2.MoveNext 'Перемещаем на следующую запись получатель данных
...
Рейтинг: 0 / 0
24.04.2006, 17:49
    #33687003
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
А в гриде-то выбрано что-нибудь?
...
Рейтинг: 0 / 0
24.04.2006, 17:59
    #33687027
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
WorobjoffА в гриде-то выбрано что-нибудь?
ага 3 строки. он определяет item = "[]?"
и уходит на end if.
Может быть потому что grid даовский???
...
Рейтинг: 0 / 0
24.04.2006, 18:02
    #33687037
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
Ну, вот! DAO или ADO, это ведь то же надо уточнять в вопросе!
с DAO никогда я не работал.
...
Рейтинг: 0 / 0
24.04.2006, 18:04
    #33687047
ba4inskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datagrid и выделенные строки
WorobjoffНу, вот! DAO или ADO, это ведь то же надо уточнять в вопросе!
с DAO никогда я не работал.
Спасибо за помощь!!! буду переделывать в адо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / datagrid и выделенные строки / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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