0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 33
1

Access и Windows Form Application

16.02.2014, 11:40. Показов 1519. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Вопрос такой, хочу сделать приложение работающее с базой данных, где таблицы будут выбираться при помощи, ComboBox, при определенной выборке из списка отображались разные таблицы. Проблема в том что я работал только с одной таблицой, а как работать с базой, не пойму. Если-кто нибудь подтолкнет буду рад =))) база MS Access 2003. Всем спасибо заранее =_))))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2014, 11:40
Ответы с готовыми решениями:

Возможно через Console Application создать тоже приложение, что и через Windows Form Application?
Возможно через Console Application создать тоже приложение, что и через Windows Form Application?...

Windows Form Application
Доброе утро! Я не давно первый раз создал Windows Form приложение на Visual C++. Меня удивила одна...

Windows Form Application C++
Извиняюсь если задеваю тему которая уже ранее здесь была..но я увы ничего не нашел((:cry:...

С# Windows Form Application
Помогите пожалуйста решить задачу: Создайте новое приложение, в котором на форме расположены...

10
Эксперт MS Access
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
16.02.2014, 11:59 2
объясните пожалуйста, зачем в поле с комбобокс выбирать разные таблицы. я считаю так, что в каждой отдельной таблице должны быть свои данные. если вы хотите собрать данные из разных таблиц в одной, то пожалуйста, но только в этой таблице для каждой дочерней таблице должно быть свое поле, а раскрывающийся список на эти поля должен быть в форме.
0
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 33
16.02.2014, 12:17  [ТС] 3
Цитата Сообщение от ProgerKZ Посмотреть сообщение
Всем привет.
Вопрос такой, хочу сделать приложение работающее с базой данных, где таблицы будут выбираться при помощи, ComboBox, при определенной выборке из списка отображались разные таблицы. Проблема в том что я работал только с одной таблицой, а как работать с базой, не пойму. Если-кто нибудь подтолкнет буду рад =))) база MS Access 2003. Всем спасибо заранее =_))))
база MS Access 2007. Формат accdb
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 12:19 4
ProgerKZ, похоже, что вы хотите получить список таблиц БД из внешнего приложения? Для этой цели хорошо подходит библиотека ADOX - msadoxXX.tlb (XX - версия). Список объектов и методов ADOX можно получить здесь: http://hiprog.com/index.php?op... &Itemid=35

Также можно воспользоваться возможностями DAO. Или, использовать ShemaTables из ADO.
1
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,365
16.02.2014, 12:20 5
Список таблиц в акцесовской базе можно получить например так:
SQL
1
2
3
SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.Flags
FROM MSysObjects
WHERE (((MSysObjects.Type)=1) AND ((MSysObjects.Flags)=0));
А вообще почитайте статейку, там довольно много полезной инфы.
1
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 33
16.02.2014, 12:30  [ТС] 6
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
объясните пожалуйста, зачем в поле с комбобокс выбирать разные таблицы. я считаю так, что в каждой отдельной таблице должны быть свои данные. если вы хотите собрать данные из разных таблиц в одной, то пожалуйста, но только в этой таблице для каждой дочерней таблице должно быть свое поле, а раскрывающийся список на эти поля должен быть в форме.
Нет, собирать данные из разных таблиц не надо. Я думал, допустим, из ComboBox выбрать название таблицы, и потом чтобы в DataGridView отображалась нужная таблица. Потом допустим изменять ее

Добавлено через 10 минут
Цитата Сообщение от Пытливый Посмотреть сообщение
Список таблиц в акцесовской базе можно получить например так:
SQL
1
2
3
SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.Flags
FROM MSysObjects
WHERE (((MSysObjects.Type)=1) AND ((MSysObjects.Flags)=0));
А вообще почитайте статейку, там довольно много полезной инфы.
Спасибо за ссылку. Работаю в C# WindowsFormApplication
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 12:40 7
Цитата Сообщение от ProgerKZ Посмотреть сообщение
Работаю в C# WindowsFormApplication
Тогда Msysobjects не подойдет. Системные таблицы недоступны из внешних приложений.

Если хочется использовать DAO, то так (код на ВБА)
Visual Basic
1
2
3
4
5
6
Dim dao as Object, My_Base as Object
Set dao = CreateObject("DAO.DbEngine.120") '120 для БД 2007 и выше. Для 2003 и ниже 36
Set My_Base = Dao.OpenDatabase("Путь\имяБД.accdb")
For Each tb In My_Base.TableDefs
    Combobox1.Additem tb.Name
Next
1
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,365
16.02.2014, 12:43 8
Да это не столь важно на чем вы пишете. Доступ к Акцесу вы все равно получаете стандартными срествами. А они предусматривают выполнение запроса к базе на языке SQL.
А доступ к системным таблицам регулируется во время подключения к БД.
1
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.02.2014, 13:03 9
Цитата Сообщение от Пытливый Посмотреть сообщение
А доступ к системным таблицам регулируется во время подключения к БД.
Это как сделать? Покажите пожалуйста.
1
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 33
16.02.2014, 15:58  [ТС] 10
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
объясните пожалуйста, зачем в поле с комбобокс выбирать разные таблицы. я считаю так, что в каждой отдельной таблице должны быть свои данные. если вы хотите собрать данные из разных таблиц в одной, то пожалуйста, но только в этой таблице для каждой дочерней таблице должно быть свое поле, а раскрывающийся список на эти поля должен быть в форме.
Просто чтобы при выборе из ComboBox у меня через DataGridView отображались разные таблицы
0
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 33
19.02.2014, 13:50  [ТС] 11
Проблема решилась. Вот код, если кому надо =)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OleDbDataAdapter adapter = new OleDbDataAdapter();
        OleDbCommand command = new OleDbCommand();
        OleDbConnection connect = new OleDbConnection();
        DataSet dataset = new DataSet();
        DataView view;
        connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bosko\Documents\!!!!.accdb;Persist Security Info=False;";
            connect.Open();
            command.Connection = connect;
            adapter.SelectCommand = command;
 if (comboBox1.SelectedItem == "1")
            {
            
                command.CommandText = "Select * from 1";
                
adapter.Fill(dataset);
                connect.Close();
                view = new DataView(dataset.Tables[0]);
                dataGridView1.AutoGenerateColumns = true;
                dataGridView1.DataSource = view;
                dataGridView1.Update();
            }
Теперь проблема в другом. После повторного выбора dataGrid не обновляется, не пойму почему

Добавлено через 6 минут
Цитата Сообщение от ProgerKZ Посмотреть сообщение
Проблема решилась. Вот код, если кому надо =)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OleDbDataAdapter adapter = new OleDbDataAdapter();
        OleDbCommand command = new OleDbCommand();
        OleDbConnection connect = new OleDbConnection();
        DataSet dataset = new DataSet();
        DataView view;
        connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bosko\Documents\!!!!.accdb;Persist Security Info=False;";
            connect.Open();
            command.Connection = connect;
            adapter.SelectCommand = command;
 if (comboBox1.SelectedItem == "1")
            {
            
                command.CommandText = "Select * from 1";
                
adapter.Fill(dataset);
                connect.Close();
                view = new DataView(dataset.Tables[0]);
                dataGridView1.AutoGenerateColumns = true;
                dataGridView1.DataSource = view;
                dataGridView1.Update();
            }
Теперь проблема в другом. После повторного выбора dataGrid не обновляется, не пойму почему
Решилось. Прописанием
C#
1
dataset.Reset();
0
19.02.2014, 13:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2014, 13:50
Помогаю со студенческими работами здесь

C++ windows form application
Как удалить созданный PictureBox? Заранее спасибо)

С++ Windows Form Application
У меня есть classname.cpp и classname.h куда правильно подключить класс чтобы с ним можно было...

Windows Form application и String
Всем привет. То ли я тупой то ли лыжи не едут. Вроде все нормально работает в консольном...

Проблема с Windows Form Application C++
Всем привет! История моя такова...Я создал программку на Visual studio 2008 а именно выбрал проект...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru