Программно изменить Data.RecordSource

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Программно изменить Data.RecordSource

Сообщение GAL » 06.06.2005 (Пн) 12:24

Привет!
Нужна помощь..
Пишу базу данных с использованием *.mdb, Data и Text - думаю схема базы понятна, в этой базе создал 2 таблицы Basetable и Basetable2, есть Combo с его помощь хочу переходить от одной таблицы к другой изменяя Data1.RecordSource = BaseTable на BaseTable2. Но текстовые поля не отображают значения таблиц, а становятся пустыми.
Почему так? Подскажите, пожалуйста... :(

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.06.2005 (Пн) 12:27

это глюк биндинга, который описан у микрософта (какой Q, я сейчас не вспомню)

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 06.06.2005 (Пн) 15:37

Ну, а идеи какие-нибудь есть?
Обойти.. Или еще что..

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 16:14

прости тугодума.. но я что то не понял, чем ты базу данных открываешь?
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 16:16

ага, теперь понял, ну , для начала тебенужно отказаться от Data1 а использовать лучьше ADO а если с Access работаешь, то тогда ещё луьше DAO.
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 16:18

ща примерчик настрочу....
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 06.06.2005 (Пн) 16:20

Alex_2005 а ... Data1 это разве не DAO???

GAL а Refresh или закрыть базу(трансакцию), переназначить источники и снова открыть не поможет?
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 06.06.2005 (Пн) 16:33

У меня голова пухнет, если честно...
Использую Access'совскую базу *.mdb.
Источники переназначал - глухо, не помогает.
Насчет Refresh'а поясни, а то я не совсем понял.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.06.2005 (Пн) 16:35

это не лечится, микрософт предлагает один раз назначать источник в дезайнтайме

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 06.06.2005 (Пн) 16:40

Не лечится? ... М-да..
Почему-то хочется ругаться..

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.06.2005 (Пн) 16:53

переходи на ADO, избавишься от многих проблем , правда приобретешь другие :)

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 17:05

DAO то оно и есть Data просто я имел в виду библиотеку а не контрол.
ЛАдно, вот примерчик. если конечно я всё правильно понял, так как из меня тугодум редкостный. :wink:
Вложения
Test.zip
(8.23 Кб) Скачиваний: 29
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 17:07

ктати 2 Gal чтоб проект работал тебе нужно в референсах указать Microsoft DAO 3.6 Object Library или какую - нибудь другую версию
Guten Morgen! А если не Guten, то тогда это и не Morgen...

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 06.06.2005 (Пн) 17:14

Alex_2005, большое человеческое спасибо.. :)
Попрубую, может получится..

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 06.06.2005 (Пн) 17:41

ну шо, подошло?
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 07.06.2005 (Вт) 10:00

2 GAL ты хоть дать знай то это вобще или не то, а может то, только не это? :wink:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 07.06.2005 (Вт) 10:21

Коль я понял задачу все должно решиться с помощью ADO:
Делаем выборку из условий комбобокса. Для первого варианта:

Set pAdoConUsers = New ADODB.Connection
Set pAdoRecUsGrp = New ADODB.Recordset
pAdoConUsers.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='" & Путь до БД и имя & "'"
pAdoConUsers.Open
If pAdoRecUsGrp.State = 1 Then
pAdoRecUsGrp.Close
End If
pAdoRecUsGrp.Open "SELECT * FROM Таблица1",pAdoConUsers, adOpenKeyset, adLockOptimistic


Для второго варианта:

pAdoConUsers.ConnectionString "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='" & Путь до БД и имя & "'"
pAdoConUsers.Open
If pAdoRecUsGrp.State = 1 Then
pAdoRecUsGrp.Close
End If
pAdoRecUsGrp.Open "SELECT * FROM Таблица2", pAdoConUsers, adOpenKeyset, adLockOptimistic


Конец выбора вариантов... Дальше просто работаем...

With pAdoRecUsGrp
Бороться и искать, найти и перепрятать!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 07.06.2005 (Вт) 10:25

P.S. Думаю о технологиях ADO и DAO ты слышал, так вот, это лучший способ работать с БД (тем паче Access, для этого VB по-моему просто заточен).
Бороться и искать, найти и перепрятать!

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 07.06.2005 (Вт) 11:27

MeMBus, я вот как раз этим и занимаюсь..
Спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 136

    TopList