Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122

Запрос. В вба не работает, а в конструкторе для запросов работает

25.03.2018, 15:27. Показов 3480. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function addData(pID As String, exID As String)
    Dim sql As String
    sql = "INSERT INTO currentExpenses ( costDate, описание, costID, counterpartiesID, total)" & _
"SELECT payment.dateOfPayment, payment.purposeOfPayment, " & Chr(34) & "CE0001" & Chr(34) & ", payment.personID, payment.total " & _
"FROM payment" & _
"WHERE (((payment.paymentCode)= " & Chr(34) & "P0373" & Chr(34) & "));"
 
CurrentDb.QueryDefs("lastQuery").sql = sql
CurrentDb.QueryDefs("lastQuery").Execute
 
End Function
SQL
1
2
3
4
INSERT INTO currentExpenses ( costDate, описание, costIDtotal, counterpartiesID, total)
SELECT payment.dateOfPayment, payment.purposeOfPayment, "CE0001", payment.personID, payment.total 
FROM payment
WHERE (((payment.paymentCode)= "P0373"));
Раньше было
SQL
1
FROM payment AS t1
Chr(34) - двойные ковычки
Вот и весь код.
Пишет что проблема в фроме, но я не могу понять что там не так.
Если для решения требуеться база я скину!
Зарание спасибо!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2018, 15:27
Ответы с готовыми решениями:

Запрос при выполнении в вба просит ввести данные, а в конструкторе работает нормально
Столкнулся со следующей проблемой. В вба запрос выдает это: Но если делать через конструктор запросов, то все отлично работает. Этих...

Как изменить запрос в конструкторе запросов Visual Studio?
Visual Studio 2015 MS Sql - 2014 Разместил на форме "dataGridView". Подключил источник данных. Создал запрос. Вопрос. Где...

Нужно преобразовать в запрос в конструкторе запросов через sql код
Здравствуйте! Помогите составить запросы по заданиям в конструкторе запросов в аксессе и там в sql код Я делал подобное задание...

53
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
26.03.2018, 18:17
Студворк — интернет-сервис помощи студентам
непонятно, как отработает в запросах Format$(fd, "\#mm\/dd\/yy\#")

и ввиду отсутствия Option Explicit несколько ошибок в именах контролов
1
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122
26.03.2018, 18:20  [ТС]
это вы рылись в форме прилегающей к отчету о прибылях и убытках?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
26.03.2018, 18:35
я нигде не рылась --я только вставила Option Explicit и запустила компиляцию кода проекта
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,630
26.03.2018, 18:42
Лучший ответ Сообщение было отмечено meref как решение

Решение

Цитата Сообщение от meref Посмотреть сообщение
у меня не работает. (Уже подозрение что у меня заколдованный комп)
meref, я же писал что в форме дело!
Код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Public Function create()
    create = MsgBox("Добавить затрату", vbOKCancel, "Потвердите")
    If create = 1 Then
        Call createExpense(Me.pc.Value)
    Else
        Me.CostW.Value = False
        GoTo theEnd
    End If
theEnd:
End Function
Замените на:
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub create()
    create = MsgBox("Добавить затрату", vbOKCancel, "Потвердите")
    If create = 1 Then
        Me.Dirty = False
        Call createExpense(Me.pc.Value)
    Else
        Me.CostW.Value = False
    End If
End Sub
Вы же работали с не сохранённой записью!
1
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,630
26.03.2018, 18:59
meref, у вас в модуле формы "counterpartiesPayment" ошибка на ошибке и ошибкой погоняет.
Остальные не смотрел, но предположения мои сумрачны.
Аккуратнее пожалуйста.
Самое явное подправил - результат высылаю.
Добавление работает.
Вложения
Тип файла: zip 1.1.3_v04.zip (488.9 Кб, 2 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,630
26.03.2018, 19:02
meref, самое страшное:
Вы используете в именах объектов форм, и названиях процедур зарезервированные слова VBA!
Это вам гарантирует глюки, хоть VBE вам временно это и прощает.

Читать ТУТ!
1
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122
26.03.2018, 19:15  [ТС]
Учил аксес методом проб и ошибок. Большое спасибо что посмотрели и помогли.
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,630
27.03.2018, 00:17
Цитата Сообщение от meref Посмотреть сообщение
Учил аксес методом проб и ошибок.
Это понятно, все так учатся.
Не самый продуктивный метод, но он в нашей крови.
Мы сначала включаем "пылесос" - и только потом читаем инструкцию
Ой! - ЙЩ! - переключатель напряжения !!! - Поздно ....

По тому что я у вас видел - замечу следующее, и так, как сам разумею.
(Тусть более знающие форумчане меня поправят если что ...)

Visual Basic
1
Public ...
Это объявление на уровне приложения - описанное так (перемененную, процедуру, функцию) видно во всём приложении и можно использовать в любом месте приложения и в выражениях в т.ч (кроме процедур и переменных).
Напрягает пространство имён приложения и тут принято экономить.

Visual Basic
1
Private ...
Это объявление на уровне текущего модуля (модуля формы например) - описанное так (перемененную, процедуру функцию) видно только внутри модуля которому принадлежит.
Visual Basic
1
... Function ...
Это описание функции которая может принимать аргументы и возвращает некоторое значение (несколько в описанном типе). Проще говоря : То что возвращает значение.
Visual Basic
1
... Sub ...
Это описание процедуры которая может принимать аргументы и не возвращает ничего, а просто производит некие операции (По событию контрола в форме например).

Добавлено через 14 минут
Ещё:
Очень желательно что бы контролы форм употребляемые в коде:
01. Имели внятные названия
02. Не имели запрещ. знаков в названии и пробелов (Только буквы и цыферы без пробелов)
03. Не в коем случае не совпадали с зарезервированными словами VBA и используемых библиотек.

... Запомнить все зарезервированные слова сложно - используйте префиксы, это древний , и не мной придуманный метод.
Например:
txtНазвание - Текстовое поле
cbxВладелецID - комбо бокс
и т.п.
1
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122
27.03.2018, 07:42  [ТС]
Ок. Спасибо!
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,630
27.03.2018, 08:08
Цитата Сообщение от meref Посмотреть сообщение
Ок. Спасибо!
Извините пожалуйста, что я был так не краток.
В будущем постараюсь исправить это упущение.
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
27.03.2018, 09:27
Кликните здесь для просмотра всего текста
а на словах просил передать... (C)
вот так и ТС, спасибо только на словах
2
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
27.03.2018, 10:48
так к слову (делал когда-то для себя)
Вложения
Тип файла: xlsx ЗапСловаVBA.xlsx (13.3 Кб, 7 просмотров)
1
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122
27.03.2018, 19:20  [ТС]
Цитата Сообщение от snipe Посмотреть сообщение
так к слову (делал когда-то для себя)
о, спасибо это точно надо использовать.
Столкнулся со след проблемой. В отчете (зайти можно по кнопке на старте отчет о прибылях и убытках обе кнопки открывают один и тот же отчет, но перед этим откроется форма для определения диапазона запроса (другой период) там и изменяется запрос) everything сложные запросы запросы с обьеденением 4 таблиц. Там все работало хорошо, но мне поставили задачу выводить их в определенном порядке (результаты запроса. Там всего 5 строк), я изменил запрос по требованиям, но он не стал так выводить их. Для устранения этой проблемы добавил поле с порядковым номером, но вдруг стала появляться форма(та что тип мсджБокс) Експрешон1000 введите данные. Я так понял что так он показывает мою сумму, я не смог это убрать. Да и еще я не помню смог найти как в отчете делать сортировку, если сможите и с этим помогите пожалуйста
Изменяется запрос everything
Вот SQL
SQL
1
2
3
4
5
6
7
8
9
10
"SELECT 1 As num, Nz(Sum(t1.total), 0) As sum, 'оплаты учеников' As who FROM ( SELECT payment.dateOfPayment, payment.total, payment.personID FROM payment WHERE (((payment.personID) Like 'S*') AND ((payment.[dateOfPayment])" & _
    " Between " & Format$(fd, "\#mm\/dd\/yy\#") & " And " & Format$(td, "\#mm\/dd\/yy\#") & "))" & _
    ") As t1 UNION SELECT 2 As num, Nz(Sum(t1.total), 0) As sum, 'заказы партнеров' As who FROM ( SELECT t1.orderDate, t1.total, t1.Êîä FROM partnerOrders As t1 WHERE ((t1.[orderDate])" & _
    " Between " & Format$(fd, "\#mm\/dd\/yy\#") & " And " & Format$(td, "\#mm\/dd\/yy\#") & "))" & _
    "AS t1 UNION SELECT 3 As num, Nz(Sum(t1.total), 0) As sum, 'staff' As who FROM ( SELECT payment.dateOfPayment, payment.total, payment.personID FROM payment WHERE (((payment.personID) Like 'ST*') AND ((payment.[dateOfPayment])" & _
    " Between " & Format$(fd, "\#mm\/dd\/yy\#") & " And " & Format$(td, "\#mm\/dd\/yy\#") & "))" & _
    ") AS t1 UNION SELECT 4 As num, Nz(Sum(t1.total), 0) As sum, 'оплата учителей' As who FROM ( SELECT work1.monthp, work1.total, work1.teacherCode FROM work1 WHERE ((work1.[monthp])" & _
    " Between " & Format$(fd, "\#mm\/dd\/yy\#") & " And " & Format$(td, "\#mm\/dd\/yy\#") & ")" & _
    ") AS t1 UNION SELECT 5 As num, Nz(Sum(t1.total), 0) As sum, 'затраты' As who FROM ( SELECT currentExpenses.costDate, currentExpenses.total, currentExpenses.costID FROM currentExpenses WHERE ((currentExpenses.[costDate])" & _
    " Between " & Format$(fd, "\#mm\/dd\/yy\#") & " And " & Format$(td, "\#mm\/dd\/yy\#") & ")) AS t1"
И второй без ограничений по датам:
SQL
1
"SELECT 1 As num, Nz(Sum(t1.total), 0) As sum, 'оплаты учеников' As who FROM ( SELECT payment.total, payment.personID FROM payment WHERE ((payment.personID) Like 'S*')) As t1 UNION SELECT 2 As num, Nz(Sum(t1.total), 0) As sum, 'заказы партнеров' As who FROM ( SELECT t1.total, t1.Код FROM partnerOrders As t1)As t1 UNION SELECT 3 As num, Nz(Sum(t1.total), 0) As sum, 'staff' As who FROM ( SELECT payment.total, payment.personID FROM payment WHERE ((payment.personID) Like 'ST*')) AS t1 UNION SELECT 4 As num, Nz(Sum(-t1.total), 0) As sum, 'оплата учителей' As who FROM ( SELECT work1.total, work1.teacherCode FROM work1) AS t1 UNION SELECT 5 As num, Nz(Sum(t1.total), 0) As sum, 'затраты' As who FROM ( SELECT currentExpenses.total, currentExpenses.costID FROM currentExpenses) AS t1"
Наверно все (я по исправлял что видел, без исп зарез слов)
Зарание большое спасибо
Вложения
Тип файла: rar 1.1.3_v04 - копия (2).rar (290.5 Кб, 1 просмотров)
0
0 / -1 / 0
Регистрация: 15.06.2017
Сообщений: 122
27.03.2018, 19:20  [ТС]
Упс вставил с кавычками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2018, 19:20

вба не работает не знаю что делать
программа должна выводить слова где две буквы а, считывая из файла блокнот Private mywords$(), i% Private Sub...

Программа для отправки GET запросов работает только в отладочном режиме
Программа должна отправлять запросы по указанной ссылке , можно указать период отправок и кол-во повторений. При билдинге (F5) и запуске...

Не работает метод в конструкторе
У меня не работает метод - если странна США, то цена больше на 50 процентов. Мой код должен оставаться конструктором class Person: ...

Не работает rand в конструкторе
подскажите пожалуйста, создаю два объекта и для каждого в конструкторе по идее должен создаваться свой размер t случайным выбором rand....

Запрос к бд работает в аксес но не работает в delphi? Подскажите в чём ошибка
begin //ADOQuery1.SQL.Text:='drop table `request`'; //ADOQuery1.ExecSQL; AdoQuery1.SQL.Clear; AdoQuery1.SQL.Add('Select...


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru