Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 194

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Как организовать запись из ComboBox в базу Access?
Есть 2 ComboBox, надо чтобы (при нажатии кнопки) значения выбранные в них записались в базу Access.

Andreev Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Andreev (статус: Посетитель)
Вопрос отправлен: 13 июня 2012, 16:08
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 14 июня 2012, 11:38; участников в обсуждении: 3.
Driver_09

Driver_09 (статус: Посетитель), 13 июня 2012, 16:35 [#1]:

я так понимаю через ADO работаете?
а что типа такого не срабатывает:
AdoTable.FieldByName('<имя_поля>').Value:=Combobox.Text;
?
Andreev

Andreev (статус: Посетитель), 13 июня 2012, 17:17 [#2]:

да, работаю через ADO
писал вот так:
ADOQuery1.Active:=False;
ADOQuery1.SQL.Text:='Select * From Tab_Avtoriz';
ADOQuery1.Active:=True;   ADOQuery1.FieldByName('Name_Krit').Value:=ComboBoxKrit.Text;   
ADOQuery1.FieldByName('Naprawlenie').Value:=ComboBox1.Text;
при компиляции все нормально, а при выполнении вылазит ошибка:
'ADOQuery1:Field 'Name_Krit' not found'
Driver_09

Driver_09 (статус: Посетитель), 13 июня 2012, 18:19 [#3]:

ADOQuery1.Active:=False;
ADOQuery1.SQL.Text:='Select * From Tab_Avtoriz';
ADOQuery1.Active:=True;
ADOQuery1.Insert;
ADOQuery1.FieldByName('Name_Krit').Value:=ComboBoxKrit.Text;
ADOQuery1.FieldByName('Naprawlenie').Value:=ComboBox1.Text;
ADOQuery1.Post;
Должно это все добавляться из выпадающего комбобокс))
Andreev

Andreev (статус: Посетитель), 13 июня 2012, 18:32 [#4]:

ошибка все равно остается,
но все равно спасибо за помощь
Driver_09

Driver_09 (статус: Посетитель), 13 июня 2012, 18:43 [#5]:

тогда попробуйте вместо звездочки написать поля целиком, т.е. так:
ADOQuery1.Active:=False;
ADOQuery1.SQL.Text:='Select Name_Krit, Naprawlenie From Tab_Avtoriz';
ADOQuery1.Active:=True;
ADOQuery1.Insert;
ADOQuery1.FieldByName('Name_Krit').Value:=ComboBoxKrit.Text;
ADOQuery1.FieldByName('Naprawlenie').Value:=ComboBox1.Text;
ADOQuery1.Post;

Ну и на всякий случай, в таблице сколько всего полей?
Andreev

Andreev (статус: Посетитель), 13 июня 2012, 18:58 [#6]:

вообще 7 полей
Driver_09

Driver_09 (статус: Посетитель), 13 июня 2012, 19:07 [#7]:

в остальные 5 полей информация тоже заносится, но только не из комбобокса, правильно понимаю?

Еще встречался с такой проблемой, что квери не добавлял информацию...Выход был такой, на DBDrid, щелкнуть по нему 2 раза, а затем добавить все поля (правой кнопкой, затем нажать Add all Fields). Тогда вот он добавлял. Попробуйте еще так. Больше не знаю в чем проблема
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 июня 2012, 11:34 [#8]:

а не проще использовать специально предназначенные для модификации/добавления записей SQL-команды update и insert, вместо того, чтобы городить огород с кучей методов ADOQuery?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 июня 2012, 11:38 [#9]:

INSERT INTO tab_avtoriz (имена полей, в которые заносятся значения) VALUES (значения, которые надо занести в поля)
UPDATE tab_avtoriz SET (имя поля1)=(значение),(имя поля2)=(значение) ...
WHERE (условия для идентификации модифицируемой записи, чтобы не изменить все записи подряд)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:58
Выполнено за 0.03 сек.