Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
1

Как программно добавить колонку в access?

15.02.2016, 13:11. Просмотров 624. Ответов 22
Метки нет (Все метки)

Всем снова здравствуйте. Облазив форум так и не смог найти решение своей задачи, подскажите пожалуйста как решить. Есть готовая база с тремя таблицами, возникла необходимость в одной из таблиц добавлять колонку с присвоением имени из эдита, сохранение в .mdb и вывод в dbgrid. Заранее благодарен всем кто отзовется.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2016, 13:11
Ответы с готовыми решениями:

Как программно добавить item с картинкой в ListView
Здравствуйте. У меня есть на форме компонент ListView и ImageList с 3-мя...

Программно создаю Edit - ы, как записанные в них значения добавить в массив?
for (int i=0;i<5;i++) { TEdit *edit = new...

Как добавить запрос из БД Access?
Здравствуйте уважаемые! Подскажите бедному студенту, как в можно добавить в...

Добавить программно запись в DBgrid
Подскажите пожалуйста как добавить запись с собственными данными в DBgrid...

Программно добавить строки в ComboBox
Как можно дабавить строчки в Combox1 С помощью кода c++

22
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
15.02.2016, 13:37 2
Добавить столбец в таблицу
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
15.02.2016, 13:45  [ТС] 3
Здесь я тоже был, добавлять то добавляет но в грид не выводит
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
15.02.2016, 14:07 4
У меня выводит.

Выложи код как делаешь?
0
Bit_Man
423 / 353 / 92
Регистрация: 24.04.2012
Сообщений: 1,399
Записей в блоге: 3
16.02.2016, 03:29 5
скорее всего столбцы дбгрида добавлены в дизайн-тайм, поэтому
Цитата Сообщение от phantom85 Посмотреть сообщение
в грид не выводит
либо программно добавлять, либо без столбцов его оставить
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
16.02.2016, 04:41  [ТС] 6
Цитата Сообщение от Sasha Посмотреть сообщение
Выложи код как делаешь?
C++
1
2
3
4
5
6
7
8
ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("ALTER TABLE list ADD "+Edit11->Text+" integer");
  ADOQuery1->ExecSQL();
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("Select *from list");
  ADOQuery1->Open();
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
16.02.2016, 10:12 7
Цитата Сообщение от Bit_Man Посмотреть сообщение
либо программно добавлять, либо без столбцов его оставить

Не по теме:

Что верно, то верно

0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
16.02.2016, 17:17  [ТС] 8
Цитата Сообщение от Sasha Посмотреть сообщение
либо программно добавлять
Вот об этом то я и задал вопрос изначально как программно это организовать )
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
16.02.2016, 17:23 9
Если убрать из дизайн-тайм, то они у тебя автоматом появятся те поля, которые указал в запросе
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
16.02.2016, 19:18  [ТС] 10
Sasha,
Если не затруднит подскажи где убрать этот тайм?
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
16.02.2016, 20:13 11
Лучший ответ Сообщение было отмечено phantom85 как решение

Решение

двойной клик по DBGrid, появляется маленькое окно и в нём должны быть прописаны поля. Вот эти поля все удаляешь, если они там будут
1
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
17.02.2016, 04:53  [ТС] 12
Sasha,
Спасибо заработало, только пришлось из ADOTable тоже удалить, исходя из этого назревает ещё один вопрос, можно ли как то считать имена всех колонок и вывести их в листбокс, по строкам я делаю вот так
C++
1
2
3
4
ADOTable1->First();
    while (!ADOTable1->Eof) {
        lb1->Items->Add(ADOTable1->FieldByName("korm")->AsString);
        ADOTable1->Next();
0
Bit_Man
423 / 353 / 92
Регистрация: 24.04.2012
Сообщений: 1,399
Записей в блоге: 3
17.02.2016, 06:49 13
C++
1
2
for (int i=0; i < ADOTable1->FieldCount; i++)
  lb1->Items->Add(ADOTable1->Fields->Fields[i]->FieldName);
Справочку, то открывай иногда
1
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
17.02.2016, 07:00  [ТС] 14
Bit_Man,
Спасибо огромное !!!
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
17.02.2016, 09:21 15
phantom85, можно сделать одной сторокой
C++
1
ADOTable1->GetFieldNames(ListBox1->Items);
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
17.02.2016, 13:30  [ТС] 16
Sasha, ну раз такое дело то помоги мне ещё с запросом
создание таблицы это понятно
C++
1
ADOQuery1->SQL->Add("create table "+Edit2->Text+"(ID counter primary key)");
как добавить колонки создавая таблицы это тоже понятно, а вот как создать колонки из эдитов к этой новой таблицы что то не получается.
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
17.02.2016, 13:32 17
Я тебе в верхних постах уже писал об этом

C++
1
2
3
4
5
6
7
8
ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("ALTER TABLE list ADD "+Edit11->Text+" integer");
  ADOQuery1->ExecSQL();
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("Select *from list");
  ADOQuery1->Open();
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
17.02.2016, 13:36  [ТС] 18
Sasha, ну это если мы знаем имя таблицы а если она только создается и имя находиться в Edit2->Text ?
0
phantom85
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 38
17.02.2016, 13:41  [ТС] 19
Sasha, вот на пример
0
Изображения
 
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,479
Записей в блоге: 3
17.02.2016, 13:48 20
Цитата Сообщение от phantom85 Посмотреть сообщение
Sasha, ну это если мы знаем имя таблицы а если она только создается и имя находиться в Edit2->Text ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ADOQuery1->Close();
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add("create table "+Edit2->Text+"(ID counter primary key)");
 ADOQuery1->ExecSQL();
 ADOQuery1->Close();
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add("SELECT *FROM "+Edit2->Text);
 ADOQuery1->Open();
 }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("ALTER TABLE "+Edit2->Text+" ADD "+Edit1->Text+" integer");
  ADOQuery1->ExecSQL();
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("Select *from "+Edit2->Text);
  ADOQuery1->Open();
}
//---------------------------------------------------------------------------
0
17.02.2016, 13:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 13:48

Программно добавить вычисляемое поле в DBGrid
Есть БД(Paradox), TTable, TDataSource и TDBGrid. БД к таблице подключается...

В поле дата/время в Access программно записать ноль
на форме необходимо заполнить поля, после нажатия на кнопку они вносятся в...

Добавить данные в БД Access
Добрый день!Помогите плиз. Недавно стала изучать Builder. Назрел вопрос есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru