Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2018, 17:06   #1
Ethex
Пользователь
 
Регистрация: 26.04.2017
Сообщений: 86
По умолчанию VBA Access Ввод данных

Доброго времени суток
Имеется процедура создания таблицы. Предварительно она предлагает пользователю ввести кооличество полей для создаваемой таблицы
Код:
Public Sub user_createTable()
Dim i As Long
Dim fName As String, fieldsQuan As String
Dim regex As New RegExp
    If MsgBox("Указать колличество столбцов самостоятельно", vbYesNo, "Создание входной таблицы") = vbYes Then
    regex.Global = True
    regex.Pattern = "\d+"
    CurrentDb.Execute "CREATE TABLE SSC (field1 VARCHAR)"
        Do
        fieldsQuan = InputBox("Укажите количество столбцов:")
        Loop Until regex.Test(fieldsQuan) = True
        For i = 2 To CInt(fieldsQuan)
        fName = "field" & CStr(i)
        CurrentDb.Execute "ALTER TABLE SSC ADD [" & fName & "] VARCHAR"
        Next
    Else
    MsgBox "Входная таблица не создана"
    End If
End Sub
Инпутбокс я поместил в логический цикл для того, чтобы окно ввода данных выплывало до тех пор, пока пользователь не введёт значение из цифровых символов. Однако, мне хотелось бы чтобы при нажатии на кнопку отмены окна ввода процедура завершалась. Но в таком виде (т.е. находясь внутри цикла), нажатие кнопки отмены приводит к тому, что окно выплывает ещё раз
Как обработать нажатие на кнопку отмены?
И, если есть более грамотный способ реализации задумки, ознакомьте, если не сложно
Ethex вне форума Ответить с цитированием
Старый 27.06.2018, 08:31   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Public Sub user_createTable()
Dim i As Long
Dim fName As String, fieldsQuan As String
Dim regex As New RegExp
    If MsgBox("Указать колличество столбцов самостоятельно", vbYesNo, "Создание входной таблицы") = vbYes Then
    regex.Global = True
    regex.Pattern = "\d+"
    CurrentDb.Execute "CREATE TABLE SSC (field1 VARCHAR)"
        Do
        fieldsQuan = InputBox("Укажите количество столбцов:")
        Loop Until regex.Test(fieldsQuan) = True Or fieldsQuan = vbNullString
        If fieldsQuan = vbNullString Then Exit Sub
        For i = 2 To CInt(fieldsQuan)
        fName = "field" & CStr(i)
        CurrentDb.Execute "ALTER TABLE SSC ADD [" & fName & "] VARCHAR"
        Next
    Else
    MsgBox "Входная таблица не создана"
    End If
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.06.2018, 18:11   #3
Ethex
Пользователь
 
Регистрация: 26.04.2017
Сообщений: 86
По умолчанию

А истина где-то рядом
Aleksandr H., спасибо вам в очередной раз
Ethex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA: Ввод данных и окно уведомления bagdad1984 Microsoft Office Excel 3 05.11.2013 16:37
Пароль на ввод данных в DBGrid (MS Access) Valera Помощь студентам 2 15.06.2012 09:10
Ввод данных VBA Бурундук Помощь студентам 0 04.06.2011 13:04
бд ввод и вывод данных из базы Access kosikator БД в Delphi 4 24.02.2010 19:41
Ввод бланка в базу данных access Norick БД в Delphi 6 24.02.2010 16:55