Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изучать access? 
:(
    Опции темы
ADS
Дата 15.2.2011, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Здравствуйте. 
Помогите пожалуйста разобраться в том как правильно и главное быстрее  smile разобраться с access. Интересуют моменты связанные с тем как что-нибудь считать в значение переменной языка VBA из какой –нибудь ячейки нужной мне таблицы и записать в какую нужно ячейку какой мне нужно таблицы. 
Мне нужно собственно следующее: у меня есть таблица порядка n*n состоящая из чисел. Мне необходимо эти данные считать в матрицу, посчитать определитель, и результат вывести на форму. Определитель должен считаться по нажатию кнопки на форме. На той же форме необходимо как-то выводить и таблицу со значениями матрицы, и кроме того иметь возможность менять значения её ячеек.

Вообщем-то я более менее разобрался с синтаксисом VBA (Слава Богу) но уже несколько дней не могу понять, как что-нибудь из таблицы считать, и если нужно записать. Каковы вообще принципы этой операции? Книжки читаю – ничего вообще понять не могу. Авторы пишут уже предполагая столько всего, что собственно если бы я это знал  то вряд ли бы начал читать.
Вообщем помогите пожалуйста понять как можно считать данные из таблицы, и потом результат операции – записать в форму или таблицу. Спасибо.





PM MAIL   Вверх
Akina
Дата 15.2.2011, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Для описанных действий (матричные операции) Access малопригоден.
Используйте Excel.
Цитата(ADS @  15.2.2011,  21:17 Найти цитируемый пост)
как правильно и главное быстрее   разобраться с access

Ну хотя бы прочитать закреплённые темы форума. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
  Дата 15.2.2011, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Цитата

Для описанных действий (матричные операции) Access малопригоден.
Используйте Excel.

Дело тут не столько в матрицах сколько в принципе: я не могу понять как мне данные считывать из таблиц, и если их считывать нельзя то зачем тогда Access вообще нужен?
Вроде бы казалось простейшая вещь: должен открыть любую книгу по Acceess и сразу же должно быть указанно как считать и как записать данные в таблицы. Это основное, остальное как говорится "приложится". А тут читаешь, читаешь книгу, и думаешь: кому люди это пишут? Что нельзя написать две строки как подключится к нужной таблице (какая комманда) и как считать данные ячейки? ЕСли умеешь считать и записать - остальное ничего не нужно. Уже можешь базу сам вести и писать свои запросы. Не быстро конечно, но все-таки. А в книгах как начнут что-то расписывать про sql, ещё там что -то.... а зачем оно мне нужно? Что нет простого способа считать данные таблицы в массив данных VBA? 

Цитата(ADS @  15.2.2011,  21:17 Найти цитируемый пост)
как правильно и главное быстрее   разобраться с access
Ну хотя бы прочитать закреплённые темы форума.

Разумеется я читаю  smile 
PM MAIL   Вверх
Akina
Дата 15.2.2011, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ADS @  15.2.2011,  23:02 Найти цитируемый пост)
Разумеется я читаю

И по ссылке на онлайн-курс сходил, и всё там прочёл, и на все контрольные вопросы ответил? что-то слабо верится...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
Дата 15.2.2011, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Цитата(ADS @  15.2.2011,  23:02 Найти цитируемый пост)
Разумеется я читаюИ по ссылке на онлайн-курс сходил, и всё там прочёл, и на все контрольные вопросы ответил? что-то слабо верится...

А нет, такого не видел,извиняюсь, а где онлайн курс не подскажите?

PM MAIL   Вверх
Akina
Дата 15.2.2011, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ADS @  15.2.2011,  23:02 Найти цитируемый пост)
нельзя написать две строки как подключится к нужной таблице (какая комманда)

Можно, конечно. Но если их просто тебе дать - то и будешь ты с этими строками как обезьяна с гранатой. Пользы в этом...

Цитата(ADS @  15.2.2011,  23:02 Найти цитируемый пост)
как считать данные ячейки?

Открою тебе тайну - в таблицах баз данных НЕТ ячеек.

Добавлено через 2 минуты и 34 секунды
Прокрутишь страницу вверх
Найдёшь строку 
Форум -> Программирование -> Базы данных -> MS Access (еще)
Кликнешь на ссылку MS Access 
Внимательно прочитаешь наименования первых двух тем.
Выберешь нужную.
Прочитаешь её.
Найдёшь нужные ссылки.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 15.2.2011, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
и если их считывать нельзя то зачем тогда Access вообще нужен?

Гы. smile Только чтобы записывать данные. smile

Абстрактный пример считывания:
Код

Dim rsRep As DAO.Recordset
Dim cdb As DAO.Database
Set cdb = CurrentDb
Set rsRep = cdb.OpenRecordset("select * from table1")
sss = rsRep("Condition").Value

В переменной SSS оказывается значение поля Condition таблицы TABLE1.
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
Вроде бы казалось простейшая вещь: должен открыть любую книгу по Acceess и сразу же должно быть указанно как считать и как записать данные в таблицы. 

А в открытой тобой книге что сразу же указано?  smile 
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
А тут читаешь, читаешь книгу, и думаешь: кому люди это пишут? 

Я прямо заинтригован: что хоть за книга такая? smile 
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
Что нельзя написать две строки как подключится к нужной таблице

Ну, смотря откуда подключаться. Можно, например, через ADO подключиться из программы на "билдере".
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
ЕСли умеешь считать и записать - остальное ничего не нужно.

Т.е. знание VBA заключается в умении читать и записывать в таблицы?
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
Уже можешь базу сам вести и писать свои запросы. 

Чтобы писать запросы - достаточно открыть построитель запросов и там уже "вести базу".
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
А в книгах как начнут что-то расписывать про sql, ещё там что -то.... а зачем оно мне нужно? 

Откуда нам тут знать, зачем тебе "нужно SQL". smile 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akina
Дата 15.2.2011, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Данкинг @  15.2.2011,  23:13 Найти цитируемый пост)
В переменной SSS оказывается значение поля Condition таблицы TABLE1.

Не совсем полно. Правильно так:
В переменной SSS оказывается значение поля Condition какой-то из записей (неизвестно какой) таблицы TABLE1.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
Дата 15.2.2011, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)
и если их считывать нельзя то зачем тогда Access вообще нужен? Гы. smile Только чтобы записывать данные. smile

А обрабатывать когда?


[QUOTE=ADS, 15.2.2011,  22:02, post2300198]
Абстрактный пример считывания:
Код

Dim rsRep As DAO.Recordset
Dim cdb As DAO.Database
Set cdb = CurrentDb
Set rsRep = cdb.OpenRecordset("select * from table1")
sss = rsRep("Condition").Value

В переменной SSS оказывается значение поля Condition таблицы TABLE1.
[/code]
Спасибо за пример. Не могли бы пояснить, что такое "DAO.Recordset"?
как я понимаю это некий предопределенный класс.
[QUOTE=ADS, 15.2.2011,  22:02, post2300198]
А в открытой тобой книге что сразу же указано?  smile 
[/code]
Завтра напишу. Книжка на работе.
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)

Я прямо заинтригован: что хоть за книга такая? smile 

Примерное название такое "Access за 24 часа".  Но я так понимаю это рекламный трюк...
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)

Ну, смотря откуда подключаться. Можно, например, через ADO подключиться из программы на "билдере".

Мне нужно подключаться из самой базы. Вот у меня есть окно модуля программы, я хочу там завести массив и считать туда данные. После чего я хочу записать результат данных обратно в таблицу. Обновить её поля. Мне нужно скажем видеть результат приведения матрицы к ступенчатому виду. 
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)

Т.е. знание VBA заключается в умении читать и записывать в таблицы?

ДЛя меня на данный момент - да. Мне главное писать какие-то математические алгоритмы, обрабатывающие большие массивы данных. . Я использую access только потому, что он входит в пакет Офиса и есть практически везде. Так сказать "вездесущ". 
Цитата(ADS @  15.2.2011,  22:02 Найти цитируемый пост)

Чтобы писать запросы - достаточно открыть построитель запросов и там уже "вести базу".

И я могу потом подключить запрос к какой-то кнопке на форме? И запрос куда мне выводит данные? Как мне их обработать та? Их же нужно умножать там, складывать и т.д. А как я буду все это делать если у меня нет массива данных?
PM MAIL   Вверх
Akina
Дата 15.2.2011, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ADS @  15.2.2011,  23:35 Найти цитируемый пост)
есть практически везде. Так сказать "вездесущ". 

Мало того, что он входит только в Проф-версию Офиса - так ещё он по умолчанию емнип и не ставится. Так что насчёт вездесущести - вопрос спорный.

Добавлено через 4 минуты и 30 секунд
Цитата(ADS @  15.2.2011,  23:35 Найти цитируемый пост)
Мне нужно скажем видеть результат приведения матрицы к ступенчатому виду. 

Повторю - для выполнения ЭТОЙ задачи нужен не Аксесс. 
Не пытайтесь забивать микроскопом гвозди - оно, конечно, когда-нить получится, но хреново.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
Дата 15.2.2011, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Цитата(ADS @  15.2.2011,  23:35 Найти цитируемый пост)

Повторю - для выполнения ЭТОЙ задачи нужен не Аксесс. 
Не пытайтесь забивать микроскопом гвозди - оно, конечно, когда-нить получится, но хреново.

Я понимаю: но мне нужно разобраться с accessom. 
Впринципе я мог бы написать и на другом языке, но я должен разобраться с accessom и задачи я сформулировал так, чтобы они касались всех интересующих на данный момент меня вопросов. Главное: как считать (что-нибудь)как обработать и  как записать и вывести на форму. 
PM MAIL   Вверх
Akina
Дата 15.2.2011, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Ладно, немножко опишу тебе, КАК будет выглядеть начало реализации ТВОЕЙ задачи на Аксессе.

Придётся создать таблицу для хранения исходных данных.
В структуре таблицы будет 4 поля (по внешнему виду это будет похоже на таблицу excel из 4 колонок).
В первом поле для каждой записи (похоже на строку в Excel) будет генерироваться Аксессом уникальный в пределах таблицы идентификатор. 
Во втором поле будет номер строки исходной матрицы.
В третьем поле - номер столбца.
В четвёртом - значение, стоящее на пересечении строки и столбца из предыдущих полей.

Т.е., например, таблица 2*2
Цитата

10 11
12 13

будет храниться как
Цитата

ID Row Col Val
 1  1   1   10
 2  1   2   11
 3  2   1   12
 4  2   2   13


Не очень похоже на то, что ты ожидаешь, верно?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
Дата 15.2.2011, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет




Цитата

Не очень похоже на то, что ты ожидаешь, верно?

совершенно верно. Мне не очень ясно почему таблица задается в таком виде, всмысле доп. индексов (Row и Col). Разве сама таблица не предполагет, что ячейки уже размечены?

PM MAIL   Вверх
Akina
Дата 15.2.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ADS @  16.2.2011,  00:24 Найти цитируемый пост)
Разве сама таблица не предполагет, что ячейки уже размечены?

Нет. В этом радикальное различие (вернее, одно из) между таблицей базы данных и рабочим листом Экселя. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ADS
Дата 15.2.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



По моим представлениям таблица это ничто иное как двумерный массив данных.
Причем: индексы Row и Col - они присутствуют сами собой даже без учета того, что мы под них отводим определенные поля. Я на данный момент (возможно наивно) предполагаю, что  существует какой-то метод типа "connect (Имя_объекта)" - используя который можно подключиться к одному из объектов (любому) Access, а затем каким -то образом получить на него характеристики. Выбирая нужные, скажем "cells" - можно осуществить доступ к данным объекта. После чего, ставя условия отбора можно выбрать те и только те элементы данных которые им отвечают, чем и заполнить значение массива. Таким образом "двумерность" - возникает как результат обработки таблицы алгоритмом из VBA. Ведь мне могло бы понадобиться заполнять элементы матрицы значениями не по порядку, а скажем первое значение находится в 5 строке 7 столбца, а второе во второе строке третьего столбца и т.д.

Добавлено через 10 минут и 58 секунд
Цитата(ADS @  16.2.2011,  00:24 Найти цитируемый пост)
Разве сама таблица не предполагет, что ячейки уже размечены?
Нет. В этом радикальное различие (вернее, одно из) между таблицей базы данных и рабочим листом Экселя.

Хм... 
Признаться пока трудно улавливаю отличие. Но как же нам все-таки считать данные?

Это сообщение отредактировал(а) ADS - 15.2.2011, 23:43
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.