Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2007, 16:05   #1
Turpa
 
Регистрация: 15.10.2007
Сообщений: 7
По умолчанию Delphi+ADO+Access

Есть 4 таблицы ...
1) Группы
2) Студенты
3) Диски
4) Любимые диски
Нужно создать каталог CD дисков студента
Зделал связь таблиц 1 и 2 (выбираю группу , вижу всех студентов етой группы)
как зделать чтоб в 4ую(любимые диски) таблицу при нажатии кнопки добавить на дб навигаторе, добавлялся id выбранного студента и id выбранного диска ?
Turpa вне форума Ответить с цитированием
Старый 15.10.2007, 16:17   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Довольно сумбурно...
Но попробую ответить, как я понял...
Видимо, нужно обрабатывать событие Table4AfterInsert:
Код:
procedure TForm1.Table4AfterInsert(DataSet: TDataSet);
begin
Table4.FieldByName('idstud').Value:=Table2.FieldByName('id').Value;
Table4.FieldByName('iddisk').Value:=Table3.FieldByName('id').Value;
end;

Последний раз редактировалось mihali4; 15.10.2007 в 20:15.
mihali4 вне форума Ответить с цитированием
Старый 15.10.2007, 18:05   #3
Turpa
 
Регистрация: 15.10.2007
Сообщений: 7
По умолчанию

Вот смотри
Таблица #1(Студенты)
1)ПК
2)Фам
3)Имя
4)Отч

Таблица #2(Диски)
1)Пк
2)Название
3)Тип
4) Жанр
...
Таблица #3(Любимые диски)
1)Пк
2)Пк_студ
3)Пк_диска

Вот нужно чтоб я выбрал в таблице №1 студента , потом вибираю во 2ой таблице диск
Нажимаю + на навигаторе 3ей таблицы и в неё вносяться ПК выбранного студента и диска ...
Turpa вне форума Ответить с цитированием
Старый 15.10.2007, 18:18   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, если так трудно заменить имена переменных в моем ответе, сделаю сам:
Код:
procedure TForm1.Любимые дискиAfterInsert(DataSet: TDataSet);
begin
Любимые диски.FieldByName('Пк_студ').Value:=Студенты.FieldByName('Пк').Value;
Любимые диски.FieldByName('Пк_диска').Value:=Диски.FieldByName('Пк').Value;
end;

Последний раз редактировалось mihali4; 15.10.2007 в 20:14.
mihali4 вне форума Ответить с цитированием
Старый 15.10.2007, 18:29   #5
Turpa
 
Регистрация: 15.10.2007
Сообщений: 7
По умолчанию

Из за чего может быть такая ошибка ?
[Error] Unit1.pas(40): Illegal character in input file: 'З' ($C7)
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(41): Illegal character in input file: 'З' ($C7)
[Error] Unit1.pas(41): Missing operator or semicolon
[Error] Unit1.pas(41): Missing operator or semicolon
Turpa вне форума Ответить с цитированием
Старый 15.10.2007, 19:21   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Turpa Посмотреть сообщение
Из за чего может быть такая ошибка ?
[Error] Unit1.pas(40): Illegal character in input file: 'З' ($C7)
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(41): Illegal character in input file: 'З' ($C7)
[Error] Unit1.pas(41): Missing operator or semicolon
[Error] Unit1.pas(41): Missing operator or semicolon
Как правило, если в процессе компиляции возникают ошибки, курсор ставится на то место, где возникла первая из них...
Отсюда и плясать надо, т.е. перепроверить указанную курсором строку.

P.S. Не люблю Access, но, тем не менее, сомневаюсь, что есть резон употреблять в ЛЮБОЙ базе данных имена таблиц, полей и т.д., написанные русскими буквами...

Последний раз редактировалось mihali4; 15.10.2007 в 19:56.
mihali4 вне форума Ответить с цитированием
Старый 15.10.2007, 19:24   #7
Turpa
 
Регистрация: 15.10.2007
Сообщений: 7
По умолчанию

Вот что у меня получилось .... а зделать тему ету не могу ... 8(((
Вложения
Тип файла: rar БД.rar (331.6 Кб, 100 просмотров)
Turpa вне форума Ответить с цитированием
Старый 15.10.2007, 20:13   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Интересно, для кого я тут распинаюсь?
1. Где обработка procedure TForm1.ADOTable3AfterInsert, о которой я писал?
2. Кто будет в программе открывать таблицы? Пушкин А.С.? Где при создании формы ADOTable.Open для всех таблиц?

Последний раз редактировалось mihali4; 15.10.2007 в 20:16.
mihali4 вне форума Ответить с цитированием
Старый 15.10.2007, 20:27   #9
Turpa
 
Регистрация: 15.10.2007
Сообщений: 7
По умолчанию

Так ... всё зделал ! Заработало ЕЕЕ ! =))))))))))))
Теперь такой вопросик ...
Есть таблица дисков (с полями наименование,жарн,носитель и тд ...
Как зделать классификацию ?
Чтоб я например в комбо боксе выбрал например "Рок" и мне выдал вес список рока ...
Turpa вне форума Ответить с цитированием
Старый 15.10.2007, 20:35   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

ADOQuery.SQL.Text:='select * from ДИСКИ where ЖАНР="РОК"'
Т.е. вместо ADOTable использовать ADOQuery.
Другой вариант - наложение фильтра, т.е.
ADOTable2.Filter:='ЖАНР="РОК"';
При этом не забываем ставить в свойствах ADOTable2.Filtered:=True;

И самое главное - про базы данных читаем, читаем, читаем...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi & Access & Ole vodila БД в Delphi 0 15.07.2008 11:11
delphi+access Doget БД в Delphi 2 30.06.2008 20:18
Delphi & Access LIEN Помощь студентам 1 26.04.2008 14:37
Access и Delphi Mitron БД в Delphi 6 10.01.2008 20:25
Access Delphi Yana БД в Delphi 1 04.01.2008 21:54