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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 20:29   #1
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию Запрос на добавление.

Есть форма, в которой заполняется два поля: Разряд и Код.

Нужно выбрать из другой таблицы коэффициент для Разряда, и вставить его и поле Код в еще одну таблицу.

Я написал такой код для кнопки:
Код HTML:
Me.Dirty = False

CurrentDb.Execute "INSERT INTO Расчет ( Коэффициент, Код )values (" + (CurrentProject.Connection.Execute("SELECT Разряд.Коэффициент FROM Разряд WHERE (((Разряд.Разряд)=" + Me.Разряд + "));").Fields(0)) + ", " + Me.Код + ");"

DoCmd.Close
Но пишет, type mismatch.
Чего так?
Prin53 вне форума Ответить с цитированием
Старый 13.03.2013, 22:03   #2
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Замените "+" на "&" (без кавычек)
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 13.03.2013, 22:41   #3
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Спасибо, но теперь пишет, что не совпадает число значений запроса и число результирующих значений. Хотя запрос (который вложен) должен выдавать лишь одно значение, соответствующее коэффициенту разряда, а они уникальны.
Prin53 вне форума Ответить с цитированием
Старый 14.03.2013, 07:25   #4
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Так попробуйте тогда уж:
Код:
SELECT top 1 Разряд.Коэффициент FROM Разряд
alvk вне форума Ответить с цитированием
Старый 14.03.2013, 20:00   #5
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Все же не помогает.
Код:
Private Sub Кнопка74_Click()
Me.Dirty = False
t = CurrentProject.Connection.Execute("SELECT TOP 1 Разряд.Коэффициент FROM Разряд WHERE (((Разряд.Разряд)=" & Me.Разряд & "));").Fields(0)
CurrentDb.Execute "INSERT INTO Расчет ( Коэффициент, Код )values (" & t & ", " & Me.Код & ");"
DoCmd.Close
End Sub
Сделал так, что бы разобраться было легче.
Ошибка во вставке. Как там могут быть не такие результирующие значения?
Prin53 вне форума Ответить с цитированием
Старый 14.03.2013, 21:18   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Prin53.
Вашу задачу лучше решать в более наглядной конструкции, и тогда на каждом этапе можно контролировать её выполнение.
Код:
Const sQ1 = "SELECT TOP 1 Коэффициент FROM Разряд WHERE Разряд=", sQ2 = "INSERT INTO Расчет ( Коэффициент, Код ) Values ("
Dim s1$, s2$, rs AS ADODB.Recordset, cn AS ADODB.Connection
s1 = Val(Me.Разряд & ""): s2 =  Val(Me.Код & "")
If Val(s1) * Val(s2) = 0 Then Exit Sub 'значение поля(ей) не числовые или равно(ны) нулю
Set cn = CurrentProject.Connection
Set rs = cn..Execute(sQ1 + s1)
If rs.Eof Then Exit Sub ' в таблице Разряд нет соответствующей записи
s1 = rs(0) & "" ' 
cn..Execute(sQ2 + s1 + ", " + s2 + ")")
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 14.03.2013, 22:43   #7
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Спасибо, Евгений!
Но код не вызывает ошибку. "User-defined type not defined'.

Код:
rs As ADODB.Recordset
Prin53 вне форума Ответить с цитированием
Старый 15.03.2013, 08:44   #8
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Подцепите ADO в референсах (alt+f11 - tools - references), вообще странно, что его у вас нет там.
alvk вне форума Ответить с цитированием
Старый 15.03.2013, 20:08   #9
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Опять же, вставка ему не нравится.

Последний раз редактировалось Prin53; 16.03.2013 в 11:26.
Prin53 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на добавление Slame Microsoft Office Access 3 15.11.2011 11:24
Запрос на добавление =Student= БД в Delphi 5 12.09.2010 21:39
Запрос на добавление Grushka Microsoft Office Access 3 03.05.2010 10:00
Запрос на добавление Insightful Microsoft Office Access 9 30.04.2010 18:17
Добавление (запрос) warshadow Microsoft Office Access 8 23.10.2009 01:15