Страница 1 из 1
Заполнение таблицы средствами VBA
Добавлено: 24 мар 2004, 11:24
Scorpion
Здрасте.
У меня есть
Таблица "Улицы ", у нее поля: ID, Name.
И Таблица "Адресса": ID_Street, Fio, .....
Таблица Улица заносится в КомбоЬокс.
:?: Как мне средствами VBA заполнить в Access таблицу "Адресса", причем, код улицы надо взять из КомбоБокса.
Заранее благодарен.

Добавлено: 26 мар 2004, 08:42
Naeel Maqsudov
Уточните, пожалуйста вопрос. Непонятно из какого комбобокса надо брать коды улиц, как настроен этот комбобокс (содержит ли он колонку нулевой ширины с кодами удалиц). Находится ли все это безобразие на форме? Очень сильно подозреваю, что все что вы пытаетесь сделать уже давным-давно реализовано в Access и для этого не нужно никакого программирования.
Добавлено: 27 мар 2004, 18:32
Naeel Maqsudov
Так.
Значит добавить запись в таблицу (а также удалить, скопироватьб изменить и пр.) при нажатии какой нибудь кнопки несомненно проще всего написав на этоу кнопку макрос-обработчик нажатия, содержащий единственную команду:
Код: Выделить всё
Private Sub Кнопка0_Click()
CurrentDb.Execute ("SQL-оператор")
End Sub
SQL-оператор надо сформировать "на лету".
Например так: "insert into Адреса(ID_Street,FIO.....) values (" & Me.ПолеСоСписком1.Value & "," & Me.ПолеСоСписком2.Value ..... & ")"
Me - это сама форма, далее идет .(Name) элемента управления, например "ПолеСоСписком2".
А вот .Value у комбобоксов равно значению ассоциированного (а не видимого) столбца
НО ЭТО ВСЕ ОТ ЛУКАВОГО
Гораздо проще:
У формы ИсточникЗаписей=Адреса, а у комбобокса Данные=ID_Street
Больше ничего. Внизу у формы есть поле номера записи, для обзора/удаления/добавления записей
Эсли поле номера не нравится, то можно свои кнопки добавить (проще, с пормощью мастера)
Удачи.
Добавлено: 29 мар 2004, 10:36
Scorpion
Болшое спосибо. Есть еще такой вопрос.
Я пишу такой код
При выполнении SQL может оказатся 0 записей.
В этом случаи с формы прподают все объекты.
Неподскажиш как этого избежать.
А вообще можно так проверять запрос, который формируется по ходу выполнения программы, содержит ли он 0 записей????
:lol: [/code]
Добавлено: 02 апр 2004, 08:56
Naeel Maqsudov
Можно form_Myform.RecordSet.RecordCount, но это плохой стить. Так как для такого подсчета, как мне кажется фетчатся все записи результата запроса. Если перед выполнением запроса надо оценить объем результата, то несомненно лучше сначала сделать select count(*) from...
Не забывайте также о многочисленных СТАНДАРТНЫХ функциях.
Например
X=DCount("*", "Таблица1", "Поле2=3")
Записывает в X результат запроса: select * from Таблица1 where Поле2=3