|
adodb
|
|||
---|---|---|---|
#18+
Допустим есть база test.mdb в ней есть 2 таблиы: cdnom (в ней поля: id_cd и cdnomer) cdtext (в ней: id, text и id_cd - провязан с первой таблицей тогоже поля) на форме имеется DataCombo и dataGrid в Combe должны отражаться данные из таблице cdnom (все работает) номера дисков (допустим 1 2 3 4 5), в DataGrid должны отражаться названия программ выбранного диска (не работает, отражается все содержимое таблици, а не выбранного диска) При выборе номера диска должно отражаться содержимое только этого диска Как это делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2003, 12:11 |
|
adodb
|
|||
---|---|---|---|
#18+
хм... а мона ответный вопрос? А как ты пытался сделать? Однозначно, нужно обрабатывать событие DataCombo_Click. В нем открываешь рекордсет с записями id_cd = ВыбранномуЗначению, назначаешь его к DataGrid в качестве DataSourse, обновляешь. Ну и все, в краце. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2003, 12:43 |
|
adodb
|
|||
---|---|---|---|
#18+
я понимаю, а как написать то кодом, мне негде посмотреть а самотыком я уж замучился ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2003, 14:01 |
|
adodb
|
|||
---|---|---|---|
#18+
hangkil писал:я понимаю, а как написать то кодом, мне негде посмотреть Похоже, что как раз не понимаешь. DionX, все нормально обьяснил ИМХО. Попробую разжевать: При изменении значения DataCombo, ловишь его в DataCombo_IndexChanged по моему, посмотри подходящие для твоего случая события. Создаешь там рекордсет , он должен быть глобальным чтобы был виден и для грида. Код: plaintext 1. 2. 3. 4.
Все. Magnus ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2003, 15:36 |
|
adodb
|
|||
---|---|---|---|
#18+
2 Magnus23 небольшое предложение/исправление: Как ты верно заметил, рекордсет должен быть глобальным хотя бы на уровне формы, в которой всё енто действо происходить будет. Поэтому создавать каждый раз новый объект rs, думаю, не стоит. Лучше будя так: dim sSql$ sSql="Select text from cdtext where id_cd="& DataCombo.SelectedItem.Text set rs=cn.Execute(sSql) ' где cn - открытое подключение к БД DataGrid.Datasource=rs а в секции объявления переменных формы/модуля что-нить типа Private/Public rs as New Adodb.Recordset В этом случае объект рекордсета будет создан один при первом к нему обращении. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 07:11 |
|
adodb
|
|||
---|---|---|---|
#18+
Все спасибо я только хотел все это сделать без операторов SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 14:41 |
|
adodb
|
|||
---|---|---|---|
#18+
Извини за нескромный вопрос:а чем тебе не нравятся операторы SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 15:11 |
|
adodb
|
|||
---|---|---|---|
#18+
Я принципиально, если это приложение VB то зачем там должен быть SQL, это дополнительно его надо учить, а зачем.??? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 15:13 |
|
adodb
|
|||
---|---|---|---|
#18+
давно не работал с vb - но вот два других направления - связанные списки(рекодсеты) или фильтр ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 16:28 |
|
adodb
|
|||
---|---|---|---|
#18+
Я принципиально, если это приложение VB то зачем там должен быть SQL, это дополнительно его надо учить, а зачем.??? Ха! Дружище, если уж ты думаешь работать с БД, то хотя бы без базовых знаний sql-запросов ни куда не двинешся. А элементарные select'ы писать, я думаю, каждому под силу... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 05:21 |
|
adodb
|
|||
---|---|---|---|
#18+
давно не работал с vb - но вот два других направления - связанные списки(рекодсеты) или фильтр а как ты будешь открывать рекордсет без SQL-запросов? Даже чтоб поставить фильтр условие задаётся в соответствии с синтаксисом инструкции where... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 05:27 |
|
adodb
|
|||
---|---|---|---|
#18+
To Magnus23: Ваш ответ верен в общем случае ("на вырост"). Если же таблица небольшая: > (не работает, отражается все содержимое таблици, а не выбранного диска) - достаточно отфильтровать рекордсет: rs.Filter= "id_cd=" & DataCombo.SelectedItem.Text и "освжить" сетку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 15:06 |
|
adodb
|
|||
---|---|---|---|
#18+
1. я видел прогу, (если в распечатке то на 50 стр.) так вот там ни одного SQL выражения 2. Processor примерно так и сделал и освежил, результат тот же, ну вот сами посмотрите: это модуль: Option Explicit Public cnn As ADODB.Connection Public prov As String Public Sub conect() Set cnn = New ADODB.Connection cnn.CursorLocation = adUseClient prov = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=test" cnn.Open prov End Sub это форма: Option Explicit Private rsnom As ADODB.Recordset Private rstext As ADODB.Recordset Private Sub dc_Change() Call conect Set rstext = New ADODB.Recordset Set rstext.ActiveConnection = cnn If rstext.State = 1 Then rstext.Close rstext.Open "cdtext" rstext.Find "id_cd = '" & dc.Text & "'" Set dg.DataSource = rstext End Sub Private Sub Form_Load() Call conect Set rsnom = New ADODB.Recordset Set rsnom.ActiveConnection = cnn If rsnom.State = 1 Then rsnom.Close rsnom.Source = "cdnom" rsnom.Open dc.ListField = "cdnomer" Set dc.RowSource = rsnom Set dg.DataSource = rsnom End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 16:39 |
|
adodb
|
|||
---|---|---|---|
#18+
фильтруй источник датагрид тем более у тебя источник ADODB.Recorsdet у которого есть оператор .Filter ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 16:48 |
|
adodb
|
|||
---|---|---|---|
#18+
hangkil пойми, вот ты всё со своими CD-ками разабратся не можешь, а если взять харошо струтурированную релляц. БД с большим коллличеством таблиц и связей то чтоб построить хорошую, гибкую обработку данных одназначно понадобится SQL'овские инструкции... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 04:51 |
|
|
start [/forum/topic.php?fid=60&gotonew=1&tid=2170538]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 344ms |
total: | 526ms |
0 / 0 |