Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Mysql и VB(6.0)(работа с двумя Datagrid) / 7 сообщений из 7, страница 1 из 1
11.05.2011, 23:33
    #37256062
epifreezz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
у меня есть 2 таблицы :
- staff(staff_id, name, post_id) Таблица содержит данные о сотрудниках (имя, номер должности)
- post(post_id, post) Таблица содержит данные о должностях(номер должности , название должности)

При помощи внешнего ключа эти две таблицы соеденены по полю (post_id)
Элементы формы
На форме 2 DataGrid. Один для вывода таблицы staff (Datagrid1), один для вывода таблицы post (Datagrid 2)

Хочу сделать что б при переходе по записям в Datagrid2 (таблица post) , в зависимости от выбраного id (он же post_id) записи в таблице post менялись занчения в таблице staff.

Проще:
В зависимости от выбранной должности в одной таблице datagrid2 (post )
показывались сотрудники работающие на этой должности в таблице datagrid1(staff)

Вот мой код

Код модуля

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public cn As ADODB.connection
Public rs As ADODB.Recordset
Public cmd As String

'соединение с БД
Sub connection1()
cmd = "Driver={MySQL ODBC 3.51 Driver};Server=" & Dialog.txtServer & ";Port=" & Dialog.txtPort & ";Database=mydb;User=" & Dialog.txtUser & "; Password=" & Dialog.txtPasw & ";Option=3;"
Set cn = New ADODB.connection
cn.ConnectionString = cmd
cn.Open
End Sub



Код формы


Код: 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.
Private Sub Form_Load()
Dim sql, sl As String

modul1.connection1 'подключаем наш модуль

sl = "select post_id,post_name from post  ORDER BY post_id" 'sql запрос на вывод таблицы post
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
rs.Open sl, cn, adOpenStatic
Set DataGrid2.DataSource = rs
    DataGrid2.ReBind
    
'Text1.Text = "1"
Set Text1.DataSource = rs       ' выводим в text1.text значение столбца "post_id" из таблицы post
    Text1.DataField = "post_id"
      
    
sql = "select * from staff where post_id= " & Text1.Text & "" 'В зависимости от значения поля text1.text
                                                              'в datagrid1 выведутся значения которые соответсвуют полю text1.text
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
rs.Open sql, cn, adOpenStatic
Set DataGrid1.DataSource = rs
    DataGrid1.ReBind
End Sub


Как я думаю это реализовать

В text1.text я вывожу id нажатого елемента (должности) в Datagrid2
И в зависимости от значения этого text1.text выводится таблица staff в Datagrid1

Всё вроде как работает.

Но
В datagrid1 выводится значение post_id =1
хотя в text1.text значение уже другое (к примеру 4) (в скриншоте всё написано)

скриншот
http://s1.ipicture.ru/uploads/20110511/2S560lIM.jpg

Как сделать что в Datagrid1 моментально отображались значения поля text1.text или же значения выбранного элемента в datagrid 2
Тоесть если в text1 записано число 4 и то и в Datagrid1 выводились стороки где номер сотрудника =4
...
Рейтинг: 0 / 0
11.05.2011, 23:39
    #37256066
epifreezz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
Возможно надо использовать какието свойства datagrid'a
типо

Код: plaintext
Private Sub DataGrid2_Change()

Но я не знаю.

Кто сталкивался с токой проблемой помогогите плиз.
...
Рейтинг: 0 / 0
11.05.2011, 23:56
    #37256077
epifreezz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
решил эту проблему таким путём

создал кнопку и закинул в неё код для вывода таблицы staff в Datagrid1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Command2_Click()
sql = "select * from staff where post_id= " & Text1.Text & "" 'В зависимости от значения поля text1.text
                                                              'в datagrid1 выведутся значения которые соответсвуют полю text1.text
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
rs.Open sql, cn, adOpenStatic
Set DataGrid1.DataSource = rs
    DataGrid1.ReBind
End Sub

Теперь при смена значения в text1.text я нажимаю кнопку и в datagrid1 выводятся сотрудники Post_id которых совпадает с text1.text

Но всёже хотелось что не нажимать не кнопку а всё делалось автоматом.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.12.2013, 01:24
    #38511666
єдуард
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
В модуле создаёте запрос поиска по значению Text1.
В процедуре Text1_Chance() выписываете имя модульной процедуры, работает
как швейцарские часики без кнопки.
...
Рейтинг: 0 / 0
25.12.2013, 01:41
    #38511673
єдуард
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
подробнее процедура модуля
......................

Option Explicit
Dim rs As ADODB.Recordset
Dim sSQL As String, sN As String
......................

Public Sub FIND_K()
Set rs = New ADODB.Recordset
sN = Text1
If sN <> "" Then sSQL = "Select * From ......... Where .......... LIKE " & Quote(sN)
rs.Open sSQL, "Provider=MSDASQL.1;Persist Security Info=False;Data Source=.........", 3, 3
Set DataGrid1.DataSource = rs
End sub
......................

Public Function Quote(strVariable As String) As String
Quote = "'" & strVariable & "'"
End Function
......................
"FIND_K" вставляете в Text1_Chance()
...
Рейтинг: 0 / 0
25.12.2013, 01:52
    #38511677
єдуард
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
В модуле к датагрид не приписано имя формы
Set Form1.DataGrid.R... = rs
...
Рейтинг: 0 / 0
25.12.2013, 12:25
    #38511944
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql и VB(6.0)(работа с двумя Datagrid)
прпробуй вместо месаги твоя процедура
Код: vbnet
1.
2.
3.
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
MsgBox DataGrid1.Text
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Mysql и VB(6.0)(работа с двумя Datagrid) / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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