Заполнение таблицы средствами VBA

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Scorpion
Сообщения: 6
Зарегистрирован: 19 мар 2004, 12:54
Контактная информация:

Здрасте.

У меня есть
Таблица "Улицы ", у нее поля: ID, Name.
И Таблица "Адресса": ID_Street, Fio, .....

Таблица Улица заносится в КомбоЬокс.

:?: Как мне средствами VBA заполнить в Access таблицу "Адресса", причем, код улицы надо взять из КомбоБокса.

Заранее благодарен.
:)
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Уточните, пожалуйста вопрос. Непонятно из какого комбобокса надо брать коды улиц, как настроен этот комбобокс (содержит ли он колонку нулевой ширины с кодами удалиц). Находится ли все это безобразие на форме? Очень сильно подозреваю, что все что вы пытаетесь сделать уже давным-давно реализовано в Access и для этого не нужно никакого программирования.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Так.
Значит добавить запись в таблицу (а также удалить, скопироватьб изменить и пр.) при нажатии какой нибудь кнопки несомненно проще всего написав на этоу кнопку макрос-обработчик нажатия, содержащий единственную команду:

Код: Выделить всё

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
Больше ничего. Внизу у формы есть поле номера записи, для обзора/удаления/добавления записей
Эсли поле номера не нравится, то можно свои кнопки добавить (проще, с пормощью мастера)

Удачи.
Scorpion
Сообщения: 6
Зарегистрирован: 19 мар 2004, 12:54
Контактная информация:

Болшое спосибо. Есть еще такой вопрос.
Я пишу такой код

Код: Выделить всё

form_Myform.ИсточникЗаписей=strSQL
При выполнении SQL может оказатся 0 записей.
В этом случаи с формы прподают все объекты.
Неподскажиш как этого избежать.
А вообще можно так проверять запрос, который формируется по ходу выполнения программы, содержит ли он 0 записей????
:lol: [/code]
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Можно form_Myform.RecordSet.RecordCount, но это плохой стить. Так как для такого подсчета, как мне кажется фетчатся все записи результата запроса. Если перед выполнением запроса надо оценить объем результата, то несомненно лучше сначала сделать select count(*) from...

Не забывайте также о многочисленных СТАНДАРТНЫХ функциях.

Например

X=DCount("*", "Таблица1", "Поле2=3")

Записывает в X результат запроса: select * from Таблица1 where Поле2=3
Ответить