Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Форма в Excel (ошибка в коде) / 11 сообщений из 11, страница 1 из 1
13.05.2014, 23:51
    #38640403
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
Добрый вечер, уважаемые!

Задачка следующая: Имеется база данных Access и файл Excel. В файле Excel имеется форма, которую заполняют пользователи, то есть при нажатии на файл Excel появляется форма которую пользователи заполняют и при нажатии на кнопку эти данные передаются в Access.

Все работает корректно, кроме случае когда два и более пользователей одновременно нажимают на кнопку, появляется ошибка "subscript out of range"
Код программы следующий:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путь к БД"
cn.Open

With rs
  .CursorType = adOpenStatic
  .LockType = adLockOptimistic
  .Open "SELECT FIO, AGE FROM Table", cn
  .AddNew
  .Fields!AGE.Value = ComboBox1.Value
  .Fields!FIO.Value = ComboBox2.Value
  .Update
  .Close
End With
cn.Close

Set rs = Nothing
Set cn = Nothing


Модератор: Учимся использовать тэги оформления кода - FAQ

Просьба помочь кто знает...
...
Рейтинг: 0 / 0
14.05.2014, 01:16
    #38640441
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
igor171когда два и более пользователей одновременно нажимают на кнопкуна одном компьютере что ли?

или все-таки в разных копиях этого файла на разных компьютерах?

Перепишите код следующим образом
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путь к БД"
cn.Open
cn.Execute "INSERT Table (AGE, FIO) VALUES (" + ComboBox1.Value + ", """ + ComboBox2.Value + """)"
cn.Close
Set cn = Nothing
...
Рейтинг: 0 / 0
14.05.2014, 09:28
    #38640547
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
Спасибо, за оптимизацию кода!

План был таков (строго не судите ибо новенький):
Есть общая папка с Excel файлом и базой Access, пользователям(другие компьютеры) рассылается гиперссылка на открытие файла Excel, при открытии файла Excel срабатывает макрос который скрывает сам Excel и показывает только форму для заполнения, после заполнения формы данные передаются в Access.

Скажу честно я не знаю можно ли это таким образом реализовать ...
...
Рейтинг: 0 / 0
14.05.2014, 09:32
    #38640550
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
попробуйте мой вариант, не поможет - будем думать дальше

по идее в приведенном вами коде не должна возникать эта ошибка. Укажите, на какой строке она возникает.
...
Рейтинг: 0 / 0
14.05.2014, 11:08
    #38640644
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
Выдает ошибку по строке INSERT INTO: "Ошибка синтаксиса(пропущен оператор)"


Код: vbnet
1.
cn.Execute ("INSERT INTO Table (AGE, FIO) VALUES (" + ComboBox1.Value + ", " + ComboBox2.Value + ")")


Модератор: Я ведь уже давал ссылку на инструкцию, как оформлять сообщения!
...
Рейтинг: 0 / 0
14.05.2014, 11:27
    #38640684
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
какие при этом значения ComboBox1.Value и ComboBox2.Value?
Какие типы полей в БД у AGE, FIO?
...
Рейтинг: 0 / 0
14.05.2014, 11:49
    #38640731
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
В бд Access оба поля Текстовые, значения тестовые Combobox1.Value=Пряник Combobox2.Value=Офис 6 этаж
...
Рейтинг: 0 / 0
14.05.2014, 11:58
    #38640743
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
То есть если я пишу так:
Код: vbnet
1.
cn.Execute ("INSERT INTO Table (AGE, FIO) VALUES (1,2)")



то в базу все записывается ...
...
Рейтинг: 0 / 0
14.05.2014, 12:10
    #38640767
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
igor171оба поля Текстовыев таком случае в кавычки нужно взять не только второе, но и первое значение
...
Рейтинг: 0 / 0
14.05.2014, 12:11
    #38640768
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
...а вы их убрали даже со второго поля.
Текстовые литералы всегда надо брать в кавычки.
...
Рейтинг: 0 / 0
14.05.2014, 12:30
    #38640798
igor171
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма в Excel (ошибка в коде)
Заработало! Огромное спасибо! все варианты перебрал ... отчаялся уже!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Форма в Excel (ошибка в коде) / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]