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


Код: 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
30.05.2007, 10:45
    #34560214
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
это немного не подходит... :(
кто-нибудь знает как еще можно сделать?
...
Рейтинг: 0 / 0
30.05.2007, 10:51
    #34560241
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Сделала так:
Код: 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
30.05.2007, 11:06
    #34560333
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Могу предложить другой вариант с использование баттонов на гриде
Код: 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
30.05.2007, 11:32
    #34560462
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
DataGrid1.Columns(8).Button = True
...
Рейтинг: 0 / 0
30.05.2007, 11:48
    #34560536
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
DataGrid1.Columns(0).Button = True или DataGrid1.Columns(1).Button = True ничего не происходит. если в скобках ставлю больше 1 - возникает ошибка
error'9' Subscript out of range :(
...
Рейтинг: 0 / 0
30.05.2007, 11:53
    #34560568
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
все. ошибку нашла. :) только еще один вопрос:
можно ли кнопку увеличить и подписать? и как ее программировать?
...
Рейтинг: 0 / 0
30.05.2007, 12:20
    #34560710
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
высота завит от высоты строк а ширина, надпись не получиться изменить
...
Рейтинг: 0 / 0
30.05.2007, 12:26
    #34560740
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
TIKOвысота завит от высоты строк а ширина, надпись не получиться изменить
что то подобное можно сделать при помощи VSFlexgrid, но там насколько я знаю можно присвоить кнопке рисунок а на счет надписи точно не могу сказать
а зачем все это надо для красоты??
...
Рейтинг: 0 / 0
30.05.2007, 12:57
    #34560854
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
просто я кнопку делаю только в ячейке с номером договора. в др. смысла нет. хотела чтобы ее было видно всегда. (по умолчанию пока в ячейку не клацнешь, кнопка видна не будет) :)
...
Рейтинг: 0 / 0
30.05.2007, 13:46
    #34561101
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
вопрос может не в тему, но найти по поиску немогу. Хотя где-то видела.
на запрос
Код: 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
30.05.2007, 14:01
    #34561159
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Елена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
30.05.2007, 14:02
    #34561172
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
а поле id есть в базе??
...
Рейтинг: 0 / 0
30.05.2007, 14:08
    #34561194
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
да. есть.
ошибка: [Mysql][ODBC 3.51 Driver][mysql-4.1.16-nt]unknown column 'Label1' in 'where clause'
...
Рейтинг: 0 / 0
30.05.2007, 14:22
    #34561250
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
сделай так
adr.Open "select * from docs WHERE id=1"
ели прокатит то проблемма в значении Лебела
...
Рейтинг: 0 / 0
30.05.2007, 14:26
    #34561262
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
прокатило. лабел = 1
...
Рейтинг: 0 / 0
30.05.2007, 14:30
    #34561276
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
ЕленаMCпрокатило. лабел = 1

adr.Open "select * from docs WHERE id=" & Label1.Caption , cnn, adOpenDynamic, adLockBatchOptimistic
а так??
...
Рейтинг: 0 / 0
30.05.2007, 14:39
    #34561320
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Как оно получается:
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
30.05.2007, 14:45
    #34561352
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
попробуй так
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
30.05.2007, 14:51
    #34561379
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
или передай параметр через переменную формы 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
30.05.2007, 14:55
    #34561395
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Ситуация аналогичная предидущей.
Label1 отображает правильное значение, а выборка идет по значению которое я внесла "по умолчанию" :( первый раз у меня такое...
...
Рейтинг: 0 / 0
30.05.2007, 15:03
    #34561437
JaneDoe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
x3...
может msgbox'ами выловить в каком месте значение не передается?
...
Рейтинг: 0 / 0
30.05.2007, 15:13
    #34561497
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
УРРА!!! через глобальную переменную получилось!
вот только странно почему через label не хотело... ну да ладно... TIKO, спасибо огромное!
...
Рейтинг: 0 / 0
30.05.2007, 15:18
    #34561518
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение из выделеной строки в Datagrid
Потому что при присваивании контролу значения в другой форме сама форма загружаеться в память, и при событии Load присванивание не успевет получить значение по этому у тебя лебел выводит первоначальное значение при событии Load а не то что присовила програмно
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / значение из выделеной строки в Datagrid / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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