|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
Связать таблицы22.05.2011, 12:45. Показов 6430. Ответов 20
Метки нет (Все метки)
Здравствуйте! Подскажите пожалуйста как можно связать две таблицы (Access), подключаемые через ADOTable.
Имеется одна таблица с полями: Код, Наименование И вторая таблица с полями: Код, Дата, Наименование Для заполнения второй таблицы у меня стоит Два BDEdit`а и один DBComboBox. Как сделать чтобы в DBComboBox можно было выбрать данные из первой таблицы(пункт наименование) и при их выборе внести во вторую таблицу?
0
|
|
| 22.05.2011, 12:45 | |
|
Ответы с готовыми решениями:
20
Связать 2 таблицы Связать две таблицы Access Не могу связать две таблицы |
|
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
|
|
| 22.05.2011, 13:20 | |
|
Plug, лучше всего используйте обычный ComboBox и ADOQuery - в этом запрос SQL пишите связывая две таблицы, сначала попробуйте в access составить запрос, затем скопировать полученный запрос вставить в дизайне SQL и обязательно прописать Close(); Clear(); Add(SELECT...); Open(); First();
1
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 22.05.2011, 13:42 [ТС] | |
|
Спасибо, но уже нашел компонент DBLookupComboBox, как раз то что мне нужно!=)
Добавлено через 4 минуты Еще один вопросик, как сделать чтобы при добавлении данных, нельзя было добавить данные с уже имеющимся таким же ключевым полем таблицы. Например у меня в таблице Код=1 Код, Наименование=гитара Тут ключевое поле код. И я пытаюсь ввести: Код=1, Наименование=Скрипка В результате программа вылетает с ошибкой. Как сделать чтобы просто показывало сообщение о том что введены не верные данные?
0
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 22.05.2011, 15:22 [ТС] | |
|
Locate сразу сбивает новую запись(Insert)... По этому не могу проверить...
Кстати о locate. Как сделать чтобы при нахождении записи через него, запись выделялась(RowSelect стоит), а при повторном нажатии на кнопку переходило на следующую найденную запись?
0
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 22.05.2011, 15:40 [ТС] | |
|
Удаляет пустую строку в которую я хочу внести данные...
0
|
|
|
|
|||||||
| 22.05.2011, 16:06 | |||||||
|
так, а ты перед внесением данных проверь существует ли такая трока в базе, если есть вноси даннные
1
|
|||||||
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 22.05.2011, 16:33 [ТС] | |
|
А как сделать чтобы при повторномнажатии на клавишу Поиск(ищет через Locate) указатель перемещался на вторую найденную запись?
0
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 22.05.2011, 22:42 [ТС] | |
|
Извиняюсь за глупый вопрос, но как можно поменять текст тайтлов(title) таблицы dbGrid? В смысле чтобы только отображались по другому...
Добавлено через 1 час 19 минут Возможно я не так выразился... В общем мне надо изменить вот это: [img]http://i082.***********/1105/a4/0c682fc25d75.jpg[/img]
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 23.05.2011, 13:38 | |
|
Для того, чтобы в базу нельзя было добавить запись с повторяющимися значениями используют уникальные индексы. Это много универсальнее, грамотнее и надежнее, чем проверка на клиенте.
Просто запрос на обновление (добавление) проверяйте на возникновение исключения, о котором сигнализирует сервер и информируйте о нем пользователя. При редактировании в сетке нельзя выполнять проверку на повтор "ключей" ДО вставки записи. Такая проверка должна выполняться непосредственно перед выполнением запроса на вставку(изменение), причем (ВАЖНО !) в контексте одной транзакции Поиск записей. Чтобы найти первую используют Locate, чтобы найти следующую годится FindNext, то только ив том случае, если Вы ищете по индексам. Для любого поиска - только сканирование, пересмотр записей. Для того, чтобы после поиска пользователь не терял "своей" записи, используйте UID записей, предварительно запоминая его в переменной, а затем используя в locate. Если в датесете нет UID, испоьлзуйте закладки (TBookMark), но при этом помните, что закладки имеют "привычку" терять валидность например при перечитке датасета или изменения его на клиенте
1
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
||||||
| 26.05.2011, 21:47 [ТС] | ||||||
|
Как можно занести данные из DateTimePicker в DBEdit?
Пробовал так -
0
|
||||||
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 26.05.2011, 22:10 [ТС] | |
|
Извиняюсь уже все исправил)) Работает))
0
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 29.05.2011, 13:14 [ТС] | |
|
Еще один вопрос: У меня есть два поля с типами Счетчик и Текстовый.
когда я вначале добавляю записи то все отлично поле Счетчик идет по порядку - 1,2,3,4... Но вот если удалю одно поле(например №3), то следующее добавление не становится на его место, а идет так 1,2,4,5... Можно как нибудь это исправить?
0
|
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
|
| 30.05.2011, 09:38 | |
|
Автоинкремент не предназначен для заполнения дыр. Еслу нужно - делаешь ручками.
Хотя как правило, от PK требуется только уникальность, но не непрерывность
1
|
|
|
6 / 6 / 0
Регистрация: 16.05.2010
Сообщений: 98
|
|
| 30.05.2011, 17:37 [ТС] | |
|
Может глупый вопрос, но можно ли как нибудь кинуть переменную в базу данных?
У меня например есть таблица с записью Фамилия - текстового типа, и в программе есть переменная S типа string, можно как нибудь перенести ее в базу?
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||||||||||
| 30.05.2011, 18:01 | |||||||||||
|
SQL:
1
|
|||||||||||
| 30.05.2011, 18:01 | |
|
Помогаю со студенческими работами здесь
20
как связать две таблицы БД в билдере Связать две таблицы (главную и подчиненную) Как связать две таблицы. Что бы выделив сотрудника в DBGrid1 увидет его медосмотры в DBGrid2? Связать колонку одной таблицы с колонкой другой таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|