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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2012, 14:49   #1
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию Запрос из VBA В Accesse

Есть вот такой запрос
Код:
SELECT тКурс_Валют.[Курс_Евро] FROM тКурс_Валют WHERE ((тКурс_Валют.[Курс_Дата])=Date());
Он отрабатывает нормально, но когда я пытаюсь результат вписать в переменную, для дальнейших вычислений, он пишит
Цитата:
Run-time error '13':
Type mismatch
Я понимаю что идет не совпадение типов, но не могу понять как исправить.
VBA код ниже.
Код:
Dim db As Database
Dim strSQL As Variant
strSQL = "SELECT тКурс_Валют.[Курс_Евро] FROM тКурс_Валют WHERE ((тКурс_Валют.[Курс_Дата])=Date());"
Set db = CurrentDb()
db.Close
Me.Цена_Евро = Me.Наименование.Column(2) * Me.Количество
Me.Цена_Руб = Me.Наименование.Column(2) * Me.Количество * strSQL
Таблица Курс_Валют столбец Курс_Евро имеет размер поля(Двойное с плавающей точкой) Формат (Фиксированный) Число десятичных знаков (2)
Да и еще Цена_Руб нигде не хранится, а вычисляется на Лету, т.к. данное поле только в форме показано.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 23.10.2012 в 14:55.
Donatello вне форума Ответить с цитированием
Старый 23.10.2012, 21:00   #2
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Цена_Руб = Наименование.Column(2) * Количество * DLookUp("Курс_Евро", "тКурс_Валют", "Курс_Дата]=Date()")

или

Dim tabl As Recordset
Set table = bd.OpenRecordset("SELECT ... FROM ... WHERE ...", dbOpenDynaset)
If Not tabl.EOF Then Цена_Руб=Наименование.Column(2)*Кол ичество*tabl!Курс_Евро
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 24.10.2012, 08:50   #3
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Или
Код:
Dim strSQL As String' если вариант, то писать не надо ничего.
dim a ' вот тут уже variant
strSQL = "SELECT тКурс_Валют.[Курс_Евро] FROM тКурс_Валют WHERE тКурс_Валют.[Курс_Дата]=Date()"
a = currentproject.connection.execute(sql).fields(0).value

Me.Цена_Евро = Me.Наименование.Column(2) * Me.Количество
Me.Цена_Руб = Me.Наименование.Column(2) * Me.Количество * a
alvk вне форума Ответить с цитированием
Старый 25.10.2012, 16:19   #4
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Спасибо за ответ, теперь стало понятно на 80% остальные 20% наверное еще не осознал.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 26.10.2012, 15:35   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Здравсвуйте, появилась еще 1 непонятная вешь. Есть форма, есть подчиненная форма табличного вида.
Как правильно задать запрос в эту форму, что бы данные из формы таблицы внести в таблицу, где эти данные уже будут хранится.
Код:
  CurrentDb.Execute "INSERT INTO тЗаказано" _
    & "([Код_Товара],[Артикул],[Наименование],[Модель],[Фабрика],[Количество])" _
    & "('" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Код_Товара] & "', '" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Артикул] & "', '" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Наименование] & "', '" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Модель] & "', '" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Фабрика] & "', '" & Forms![фтДобавить_Заказ_Подчиненная_Табличная_Форма]![Количество] & "';)"
вот на такой код пишет, что не может найти форму.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается выполнить запрос в vba ketr Microsoft Office Access 1 19.03.2012 19:48
Создать запрос средствами VBA was3110 Microsoft Office Access 4 18.04.2011 11:54
Запрос по выборке таблиц в Accesse. Droid БД в Delphi 3 25.11.2009 15:55
POST запрос в VBA motorway Microsoft Office Excel 1 04.07.2009 01:24
Перестает срабатывать запрос в VBA Landurik Microsoft Office Access 0 25.06.2009 12:43