Чтение таблицы на vba

Программирование на Visual Basic for Applications
step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Чтение таблицы на vba

Сообщение step » 06.04.2006 (Чт) 15:32

Есть база данных access, в ней создаю таблицу и форму, как прочитать к-ть ячейку из таблицы, через vba код????
Заранее благодарен!
Последний раз редактировалось step 06.04.2006 (Чт) 16:39, всего редактировалось 1 раз.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.04.2006 (Чт) 15:46

Не надо поступать с access как с excel.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 16:20

GSerg писал(а):Не надо поступать с access как с excel.

Не, маленько не так, при нажатие на button, в текстбоксе должен прописываться текст из первой ячейки первой колонки!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2006 (Чт) 16:22

Еще раз. Не надо поступать с Access, как с Excel. База данных это не электронная таблица.
Lasciate ogni speranza, voi ch'entrate.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 16:26

Не понимаю я вас, обьясните, как надо поступать?

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 06.04.2006 (Чт) 16:31

В Access'е обращение к таблицам осуществляется через запросы. Т.е. чтобы получить какое-то конкретное значение, нужно обратится к таблице составив запрос с требуемыми критериями поиска

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2006 (Чт) 16:31

Тогда другими словами.
В Access нет ячеек. Нет колонок. Строки есть, но смысл у них совершенно другой, чем в Excel.
Lasciate ogni speranza, voi ch'entrate.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 16:38

Ну.... Понятно.... Т.е. то, что я хочу сделать-это невозможно???

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 06.04.2006 (Чт) 16:39

составь запрос, в чём проблема?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2006 (Чт) 16:40

"Мне нужно залезть на дерево. Я могу сделать это с помощью велосипеда? Или это невозможно?"
Lasciate ogni speranza, voi ch'entrate.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 16:46

Olga писал(а):составь запрос, в чём проблема?

Проблема в том, что я сегодня первый раз запустил access!!!
И только начал его изучать!

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 16:50

alibek писал(а):"Мне нужно залезть на дерево. Я могу сделать это с помощью велосипеда? Или это невозможно?"


Ты забыл "Copyright © 2006 alibek" !!! :lol:

Конечно возможно залезть с помощью велосипеда на дерево, если плотность воздуха в момент залезания на дерево, будет выше плотности велосипеда в несколько раз!!!

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 06.04.2006 (Чт) 16:52

давай на примере

когда ты хочешь получить какую-либо запись, тебе необходимо определить условия поиска

допустим есть таблица

A B C
100 fghhhg 5
4 GGG 12
122 ttt 67

нужно найти запись, где А=100 и получить значение С

Запрос:
SELECT C FROM Tabl WHERE (A=100);

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.04.2006 (Чт) 16:53

step писал(а):если плотность воздуха в момент залезания на дерево, будет выше плотности велосипеда в несколько раз!!!

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

Сосед, залезающий на дерево с помощью лестницы, несомненно оценит эти приготовления.


Если ты запустил access, ты наверное пришёл к осознанному выводу, что надо использовать именно его? Или просто мимо excel по кнопке промахнулся?
Последний раз редактировалось GSerg 06.04.2006 (Чт) 16:56, всего редактировалось 1 раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.04.2006 (Чт) 16:55

Olga
Подобный совет вряд ли поможет человеку, использующему access как excel. К тому же, совет не в тему. Он хочет вернуть первую строку таблицы. Какие средства sql позволяют сделать это?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 06.04.2006 (Чт) 16:56

Может GSerg прав, стоит что-нибудь почитать прежде чем работать с Access

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 17:01

GSerg писал(а):Правда, стоит взять спецаппарат для дыхания в воздухе такой плотности, а также шахтный проходчик для передвижения в пространстве, ибо ситуация будет напоминать телепорт внутрь скалы.

Сосед, залезающий на дерево с помощью лестницы, несомненно оценит эти приготовления.

Люблю людей с нормальным чувством юмора!!!

GSerg писал(а):Если ты запустил access, ты наверное пришёл к осознанному выводу, что надо использовать именно его? Или просто мимо excel по кнопке промахнулся?


Не, я не мог промахнуться, я к этому осознанному решению шёл всю прожитую жизнь, всегда обходя украткой эту розовую кнопочку, с изображённым на ней ключём, и вот сегодня я решился на неё нажать!!! :lol:

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.04.2006 (Чт) 17:03

Olga писал(а):Может GSerg прав, стоит что-нибудь почитать прежде чем работать с Access

Не, он не может быть прав, для правоты у него сильно много звёзд!!! :lol:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2006 (Чт) 19:20

GSerg писал(а):Он хочет вернуть первую строку таблицы. Какие средства sql позволяют сделать это?

Для данного конкретного случая есть TOP :)
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.04.2006 (Пт) 4:59

TOP в общем случае вернёт случайную первую запись. И хотя вероятнее всего, что она будет первой физической, это отнюдь не гарантируется.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 07.04.2006 (Пт) 5:49

Товарищи всем спасибо, я нарыл ответ!
Если к-ть нужно: Получение к-ть записи из таблицы в ACCESS


Код: Выделить всё
Dim basa As Recordset

'Подключаемся
Set basa = CurrentDb.OpenRecordset("ИМЯ ТАБЛЫ", dbOpenSnapshot)
'На нулевую строку(т.е. на первую, если по Русски)
basa .Move (0)
'Выбираем столбец, из которого читать данные, и читаем
msgbox( basa .Fields(2))

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.04.2006 (Пт) 6:03

step
Ты так ничего и не понял.
Впрочем, я так понимаю, оно тебе совершенно не важно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 07.04.2006 (Пт) 7:22

step писал(а):
Код: Выделить всё
Dim basa As Recordset

'Подключаемся
Set basa = CurrentDb.OpenRecordset("ИМЯ ТАБЛЫ", dbOpenSnapshot)
'На нулевую строку(т.е. на первую, если по Русски)
basa .Move (0)
'Выбираем столбец, из которого читать данные, и читаем
msgbox( basa .Fields(2))

СПАСИБО! Сейчас же вставлю этот код во все свои проекты!
Иногда складывается впечатление, что людЯм задали задачку по программированию в школе, и они наперегонки бегут в форум, чтобы им там все разжевали.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 8:23

GSerg писал(а):TOP в общем случае вернёт случайную первую запись.

Ну все-таки не случайную :)
Всегда можно предсказать, какая это будет, на основании запроса :)
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.04.2006 (Пт) 10:57

SELECT * FROM Table - какая будет первой? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 11:07

Ты мне дай эту Table, и я скажу :)
Ты ведь не хочешь сказать, что если я десять раз подряд запущу этот запрос, первой записью будут постоянно разные строки?
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.04.2006 (Пт) 11:17

Нет, будет одно и то же в одних и тех же условиях.
Но это не гарантирутся в общем :) База может вернуть физически первую строку, первую строку первичного ключа, первую строку на основе некоего индекса, и даже если там rnd, это будет соответствовать стандартам, ты ведь знаешь это прекрасно :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 07.04.2006 (Пт) 14:33

Nicky писал(а):СПАСИБО! Сейчас же вставлю этот код во все свои проекты!
Иногда складывается впечатление, что людЯм задали задачку по программированию в школе, и они наперегонки бегут в форум, чтобы им там все разжевали.


В какой школе, блин, просто программил, на Басике, на Сишке, а вдруг заказчику понадобилось БД в access, ну вот сижу и разбираюсь!!!
Всем спасибо, хуть "тема" не пустует! :lol:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 14:42

А в C, оказывается, с базами данных по другому работают?
Lasciate ogni speranza, voi ch'entrate.

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 09.04.2006 (Вс) 12:34

To step
Я тоже три-четыре месяца назад в первый раз начал использовать Access.
Раньше его иконку стирал с экрана сразу, после установки Office, не давая остынуть, и так ненавидел, что в старт меню тоже удалял.
Но сейчас, когда читаю ваш вопрос, смешно становится. (И путь к тому, то, что за это время узнал, прошел через нервную систему Gserg и alibek :) ).

Я пишу к тому, что так и надо, “шоковой терапией”, и боятся не надо.
Самое сложное одолеть болезнь Excel-а о чем выше писал Gserg.
Главное для первого раза понять, что таблицы там, в отличие от Excel
не имеет номера или имени строки, а столбцы имеют только имя, а к их порядку
нужно подходить как условному порядку, т.е. фактический, их тоже нет.
На первый взгляд, это бесит, но потом понимаешь, что это во благо.
И задача, причем легкая, состоит в том что, зная только имя столбца
(там они полями называются) найти нужную запись
или группу записей, используя критерии поиска.

След.

Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList