powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / значение из выделеной строки в Datagrid
30 сообщений из 30, показаны все 2 страниц
значение из выделеной строки в Datagrid
    #34559620
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суток! :)
Я к вам с очередной проблемой:
У меня есть датагрид с полями user, firm, ... хочу чтобы при двойном щелчке на строке открывался документ DocWord = WordApp.Documents.Open(App.Path & "\user\" & firm & ".doc")
т.е. при двойном щелчке нужно считывать значения ячеек в выделеной строке.
Подскажите, как это сделать?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34559809
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу предложить другой вариант с использование баттонов на гриде


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim strFirm As String
Dim strUser As String
Select Case ColIndex
Case  0 
    strFirm = DataGrid1.Text ' значение колонки FIMR
    Debug.Print strFirm
Case  1 
    strUser = DataGrid1.Text ' значение колонки USER
    Debug.Print strUser
End Select

End Sub

Private Sub Form_Load()
DataGrid1.Columns( 0 ).Button = True ' ИНДЕКС ПОЛЕ FIRM
DataGrid1.Columns( 1 ).Button = True ' ИНДЕКС ПОЛЕ  USER
End Sub
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560214
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это немного не подходит... :(
кто-нибудь знает как еще можно сделать?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560241
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub DataGrid1_dblclick()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim name As String
Dim cmd As ADODB.Command
Dim strConn As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"

cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open
adr.Open "select * from docs ", cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = adr
name = adr![firm]
Label8.Caption = name
End Sub
получается что при двойном щелчке Label8 принимает значение поля firm, но т.к. у меня select * то значение принимает только из первой строки.
в первом столбце у меня № документа (т.е. значения не повторяются) может можно динамически гинерировать еще один вопрос по этому столбцу?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560333
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу предложить другой вариант с использование баттонов на гриде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim strFirm As String
Dim strUser As String
Select Case ColIndex
Case  0 
    strFirm = DataGrid1.Text ' значение колонки FIMR
    Debug.Print strFirm
Case  1 
    strUser = DataGrid1.Text ' значение колонки USER
    Debug.Print strUser
End Select

End Sub

Private Sub Form_Load()
DataGrid1.Columns( 0 ).Button = True ' ИНДЕКС ПОЛЕ FIRM
DataGrid1.Columns( 1 ).Button = True ' ИНДЕКС ПОЛЕ  USER
End Sub
У мня 7 столбцов...4
Я вот подумала: может есть какая-то возможность сделать в 8-м кнопку которая и будет открывать документ?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560462
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DataGrid1.Columns(8).Button = True
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560536
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DataGrid1.Columns(0).Button = True или DataGrid1.Columns(1).Button = True ничего не происходит. если в скобках ставлю больше 1 - возникает ошибка
error'9' Subscript out of range :(
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560568
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все. ошибку нашла. :) только еще один вопрос:
можно ли кнопку увеличить и подписать? и как ее программировать?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560710
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
высота завит от высоты строк а ширина, надпись не получиться изменить
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560740
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOвысота завит от высоты строк а ширина, надпись не получиться изменить
что то подобное можно сделать при помощи VSFlexgrid, но там насколько я знаю можно присвоить кнопке рисунок а на счет надписи точно не могу сказать
а зачем все это надо для красоты??
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34560854
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто я кнопку делаю только в ячейке с номером договора. в др. смысла нет. хотела чтобы ее было видно всегда. (по умолчанию пока в ячейку не клацнешь, кнопка видна не будет) :)
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561101
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос может не в тему, но найти по поиску немогу. Хотя где-то видела.
на запрос
Код: plaintext
1.
2.
number = Label1.Caption
adr.Open "select * from docs WHERE id=" & number, cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = adr
получается что я не присваиваю переменной number значение поля Label1, т.к. ругается что нет столбца Label1
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561159
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕленаMCвопрос может не в тему, но найти по поиску немогу. Хотя где-то видела.
на запрос
Код: plaintext
1.
2.
number = Label1.Caption
adr.Open "select * from docs WHERE id=" & number, cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = adr
получается что я не присваиваю переменной number значение поля Label1, т.к. ругается что нет столбца Label1
а что у вас в Label1.Caption какое значение??
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561172
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а поле id есть в базе??
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561194
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да. есть.
ошибка: [Mysql][ODBC 3.51 Driver][mysql-4.1.16-nt]unknown column 'Label1' in 'where clause'
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561250
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделай так
adr.Open "select * from docs WHERE id=1"
ели прокатит то проблемма в значении Лебела
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561262
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прокатило. лабел = 1
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561276
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕленаMCпрокатило. лабел = 1

adr.Open "select * from docs WHERE id=" & Label1.Caption , cnn, adOpenDynamic, adLockBatchOptimistic
а так??
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561320
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оно получается:
form1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim strFirm As String
Dim strUser As String
Select Case ColIndex
Case  0 
    Form3.Show
    Form3.Label1.Caption = DataGrid1.Text 
End Select
End Sub

Form3
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Form_Load()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim name As String
Dim cmd As ADODB.Command
Dim strConn As String
Dim number As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"

cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open
number = Label1.Caption
adr.Open "select * from docs WHERE id=" & number, cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = adr
ShowTitleBar False
Form3.Width = Screen.Width
DataGrid1.Width = Screen.Width -  30 
End Sub

при создании Form3 я в поле Caption указала 5 и выбирается строка по этому значению.
то что я пишу Form3.Label1.Caption = DataGrid1.Text программа не видит. хоть и отображает.
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561352
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй так
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim strFirm As String
Dim strUser As String
Select Case ColIndex
Case 0
Form3.Label1.Caption = DataGrid1.Text
Form3.Show
End Select
End Sub
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561379
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или передай параметр через переменную формы lngId
Код: 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.
Public lngId as Long
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim strFirm As String
Dim strUser As String
Select Case ColIndex
Case  0 
    
   lngId = DataGrid1.Text 
Form3.Show
End Select
End Sub

Form3

Private Sub Form_Load()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim strConn As String
Dim number As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"

cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open

adr.Open "select * from docs WHERE id=" & Forma2.lngId, cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = adr
ShowTitleBar False
Form3.Width = Screen.Width
DataGrid1.Width = Screen.Width -  30 
End Sub
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561395
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация аналогичная предидущей.
Label1 отображает правильное значение, а выборка идет по значению которое я внесла "по умолчанию" :( первый раз у меня такое...
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561437
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x3...
может msgbox'ами выловить в каком месте значение не передается?
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561497
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
УРРА!!! через глобальную переменную получилось!
вот только странно почему через label не хотело... ну да ладно... TIKO, спасибо огромное!
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561518
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что при присваивании контролу значения в другой форме сама форма загружаеться в память, и при событии Load присванивание не успевет получить значение по этому у тебя лебел выводит первоначальное значение при событии Load а не то что присовила програмно
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561542
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и не понял, что трудного в том чтобы DblClick обработать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub DataGrid1_DblClick()
   If IsNull(DataGrid1.Bookmark) Then Exit Sub  'Возможно, еще проверки надо добавить EOF, BOF
   
   Dim rs As ADODB.Recordset
   Set rs = DataGrid1.DataSource.Clone 'Если DataSource - не рекордсет, DE, поправить эту строчку
   rs.Bookmark = DataGrid1.Bookmark
'Покажем содержимое текущей строки грида ...
   Dim f As ADODB.Field
   Dim s As String
   For Each f In rs.Fields
      s = s & f.Value & vbCrLf
   Next
   MsgBox s  
' ... А можно было передать rs("ID") форме отображающей единичную запись
End Sub
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561665
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где ж ты раньше был?
Worobjoff!!! это самое оно!!!! )) спасибо тебе!!!! )
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561773
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
' ... А можно было передать rs("ID") форме отображающей единичную запись
не получается. :( можно подробнее как это сделать?
как бы не пробовала, пишет ошибку.
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34561884
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь rs("ID") - это обращение к полю рекордсета имеющему имя "ID"
Посмотрел ваше первое сообщение, вы используете другую запись
rs!ID
Устаревший синтаксис, а привычка может подвести.
Лучше rs.Fields("ИмяПОля").Value
или сокращенная запись
rs("ИмяПоля")

Увидев ID любой программист обычно понимает под ним имя первичного ключа.
Если он есть в вашей таблице (уникальный первичный ключ), то форме единичной записи чтобы открыть нужную запись достаточно знать лишь значение этого ключа.
Например
Код: plaintext
1.
2.
3.
Public Sub LoadRecord(byval ID as Long)
   rsOrders.Open "SELECT * FROM Orders WHERE OrderID = " & ID , MyConnection ', ....
'Далее привязка полей формы к полям рекордсета
End Sub
У меня есть дежурный пример для таких случаев как ваш. Вечером выложу сюда.
...
Рейтинг: 0 / 0
значение из выделеной строки в Datagrid
    #34562050
ЕленаMC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо. id это действительно уникальный первичный ключ :) уже набралась премудростей от программистов :)
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / значение из выделеной строки в Datagrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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