|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.03.2012, 18:28 | #1 |
Новичок
Джуниор
Регистрация: 05.03.2012
Сообщений: 1
|
Наличие таблицы в БД
Как написать на VBA в обработчике кнопки запрос:
если таблица с именем Name содержится в базе данных, то удалить её |
05.03.2012, 19:50 | #2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте Langoria.
Удалить таблицу можно подобным кодом: Код:
(т.е. не выполняет проверку существования таблицы, а сразу пытается удалить) результат получается ожидаемый, его проверить можно прочитав код возвращаемой ошибки. Евгений. P.S. выкладывая вопрос не забывайте обращаться к тем кому Вы его адресуете, не знаете как - можно просто поздоровавшись. Последний раз редактировалось Teslenko_EA; 05.03.2012 в 19:56. |
19.07.2012, 13:17 | #3 |
Регистрация: 19.07.2012
Сообщений: 3
|
Всем Доброго Дня!
Teslenko_EA, Вам отдельного, Доброго Дня! У меня такой вопрос по предложенной процедуре - как ей передать аргументом имя таблицы, которую нужно удалить и после этого использовать его (имя таблицы) в SQL запросе? Весь день мучаюсь, получаю ошибку Constant Expression Required. Пробовал и кавычки, и ByVal, и много разных вариантов. Чета все не клеится. Код:
|
19.07.2012, 16:20 | #4 |
Регистрация: 19.07.2012
Сообщений: 3
|
Вроде разобрался, вот так работает:
Код:
|
19.07.2012, 17:30 | #5 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте Vovka_Ya.
"..мучаюсь, получаю ошибку Constant Expression Required.." "..Вроде разобрался.." - это хорошо что Вы поняли что константу изменить нельзя. Но для практического применения лучше создать функцию и по её результату продолжать или прекращать выполнение кода Код:
в качестве имен своих объектов и переменных, это избавит от проблем в будущем. Евгений. P.S. на интересующую тему можно сослаться, не выкладывая в чужой теме свой вопрос, придерживайтесь правила "один вопрос=одна тема". все свои сообщения я подписываю в надежде, что обращаться ко мне будут по имени. |
19.07.2012, 18:05 | #6 |
Регистрация: 19.07.2012
Сообщений: 3
|
Евгений, благодарю за рекомендацию.
P.S. Новую тему создавать не стал, т.к. цель была таже, что и у Langoria, но немного дополненная/уточненная BR |
19.07.2012, 20:11 | #7 |
Форумчанин
Регистрация: 19.07.2012
Сообщений: 520
|
Имена всех существующих таблиц можно узнать так:
SELECT MSysObjects.Name FROM MSysObjects WHERE MSysObjects.Type=1 Т. е. можно обойтись и без обработчика ошибок: Sub delTable(sName As String) Iif Not IsNull(DLookup("Name", "MSysObjects", "Type=1 AND Name=""" + sName + """")) Then CurrentDb.Execute "DROP TABLE " & sName End Sub
Окупант, руки прочь от Украины!!! Слава Героям!
|
19.07.2012, 21:55 | #8 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте Myhaylo.
Предложенный Вами способ хорош, но утверждать: "..обойтись и без обработчика ошибок.." я бы не стал Ошибку 3376 Ваша конструкция обходит, а как быть с другими возможными (?) например 3211, для каждой создавать собственный обработчик? думаю обработчик ошибок в подобной процедуре имеет право на жизнь. Евгений. P.S. для удобочитаемости выкладываемый код заключайте в тэги [соde] ... [/соde] для этого на панели инструментов размещена кнопка #. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Наличие цифры | Shouldercannon | Общие вопросы Delphi | 9 | 26.07.2010 08:20 |
Проверка на наличие файла | ruavia3 | Microsoft Office Excel | 1 | 05.02.2010 21:13 |
Проверка на наличие файла | Demetrius | Помощь студентам | 12 | 28.07.2009 00:27 |
Проверит наличие програмы. | blackstersl | Общие вопросы Delphi | 5 | 24.06.2009 12:16 |
Проверка на наличие таблицы в БД | Ramires | БД в Delphi | 3 | 18.12.2008 08:59 |