Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188

Данные из одномерного массива в SQL запрос (или как уменьшить код)

02.05.2016, 19:11. Показов 1834. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день!

Товарищи, опять я себе проблему придумал, которую не могу сам решить Прошу помощи)

В двух словах, что реализовываю:

Ввожу данные в Texbox'ы (их около 20) --> Присваиваю значения Переменным --> Вставляю эти переменные в SQL запрос в WHERE.

Так как Texbox'ов много, то хочу уменьшить код, из реальных выходов, понял, что можно уменьшить с помощью массива, но как реализовать не знаю.. Если у кого то другое предложение будет - буду очень рад!

Кусок кода с SQL запросом:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" _
    & ActiveWorkbook.Path & "\BD.accdb; Jet OLEDB:Database;" '<----------------------------------- Создаём подключение к БД и указываем к ней путь
     
    Dim con As New ADODB.Connection
    con.Open ConnectionString
    
    On Error GoTo error_BD '<------------------- Если ошибка, то переходим в процедуру error_BD
    con.Execute ("SELECT TOP 1 * FROM DATA")
    On Error GoTo 0
    
    On Error GoTo error_UNIC
    con.Execute ("INSERT INTO DATA(C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, Users) VALUES (" & C1 & ", " & C2 & "," _
               & "" & C3 & ", " & C4 & ", " & C5 & ", " & C6 & ", " & C7 & ", " & C8 & ", " & C9 & ", " & C10 & ", " & C11 & ", " & C12 & ", " & C13 & ", " & C14 & ", " & C15 & ", " & C16 & ", " & C17 & ", " & C18 & ", " & C19 & ", 'Anton');") '<----------- Выполняем SQL скрипт
    On Error GoTo 0
    
    con.Close '<------------------- Закрытваем подключение к БД
    
    Exit Sub
Ранее, когда делал аналогичное, но записывал данные в ячейки Excel, то использовал такой код:

Visual Basic
1
2
3
4
5
6
7
With Sheets("DATA")
        r = .Columns(1).Rows(65536).End(xlUp).Row + 1
        For i = 1 To 19
            c = i
            .Cells(r, c) = Me.Controls("TextBox" & i).Value
        Next i
    End With
Может, как то по аналогии с
Visual Basic
1
Me.Controls("TextBox" & i).
можно C1-C19 сделать ?

А то если каждую переменную расписывать - то больно много букв получается)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2016, 19:11
Ответы с готовыми решениями:

Как сделать запрос sql, используя данные из массива?
Здравствуйте. Подскажите. на выходе скрипта получаю массив massiv со значениями : знач1, знач2, знач3, ..., значN и имею sql...

Все элементы заданного одномерного массива уменьшить в 2 раза
1. Все элементы заданного одномерного массива А, начиная с первого по порядку положительного четного элемента, уменьшить в 2...

Уменьшить каждый элемент одномерного массива на его номер
Надо уменьшить каждый элемент одномерного массива на его номер. Например элемент №2 *37* станет числом 37-2=35

3
4088 / 1468 / 401
Регистрация: 07.08.2013
Сообщений: 3,668
03.05.2016, 02:43
а что мешает работать прямо в аксе

Добавлено через 7 минут
почему форма ввода отдельно от базы данных?

и скорее всего в Excel

Дело в том что если подобную форму сделать в Аксе (в другом файле от бд) то
можно прилинковать таблицу из первой базы и на эту прилинкованную таблицу настроить форму
Ваши километры кода уйдут в прошлое т.к. данные с формы сразу будут попадать в таблицу
1
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
03.05.2016, 14:35  [ТС]
snipe, у пользователей не установлен Access и нельзя установить..

Добавлено через 2 часа 4 минуты
Задача решена) Освоил Словарь
0
4088 / 1468 / 401
Регистрация: 07.08.2013
Сообщений: 3,668
04.05.2016, 03:10
а и не надо юзерам ставить акс
акс должен быть у разработчика
дело в том что в пакет Офиса даже урезанного (т.е. без акса) входит библиотека RunTime
эта библиотека позволяет использовать готовую базу данных Акса без установленного ms access
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2016, 03:10
Помогаю со студенческими работами здесь

Как записать данные из одномерного массива в двумерный?
Подскажите пожалуйста новичку, как записать данные из одномерного массива в двумерный? уже голову ломаю 2 недели... Есть вот такой...

Как передать данные из одномерного массива в многомерный
допустим есть есть группа массивов разной длинны а1(),а2(),а3(),а4(),а5() затем нужно создать один многомерный массив в который будут...

Уменьшить элементы одномерного массива, стоящие на не четных местах, в 2 раза
Создать одномерный массив x случайным образом. Вывести его в строку. Затем уменьшить элементы стоящие на не четных местах в 2 раза. После...

Как правильно подставить в запрос SQL данные из TextBox
Приветствую Всех! Народ подскажите пожалуйста, есть запрос к одной из таблиц по русски звучит так, вывести несколько столбцов из таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru