У меня есть база данных, над которой я работаю. Он состоит из разделенной базы данных, как передней, так и нескольких ссылок на бэкэнд-таблицы.Запустить запрос в фоновом режиме
Я работаю над докладом, который состоит из 15 различных подзаголовков. У меня есть форма, которая позволяет мне вводить дату начала и дату окончания отчета. Есть кнопка, которая генерирует окончательный отчет. Проблема в том, когда я хочу сгенерировать отчет, мне пришлось бы повторно запускать каждый из разных запросов таблицы make для каждого из под-отчетов. Проблема заключается в том, что для каждого запроса будет 2 предупреждения, один для удаления моей таблицы и другой для строк, добавленных в таблицу.
Я исследовал онлайн и нашел этот код для запуска команды Execute, которая удалит все предупреждения. Я новичок в VB, но я решил, что попробую, и я получу следующую ошибку во время выполнения »3078: механизм базы данных MS Access не может найти входную таблицу или запрос». Я проверил имя запроса, и он соответствует, поэтому я не уверен, почему я получаю эту ошибку. Я только пробовал один из 15 запросов, поэтому я могу убедиться, что он работает. Как только я получу это для работы, мой другой вопрос заключается в объединении всех этих функций в 15 команд выполнения в модуле?
Private Sub PS_Report_Date_AfterUpdate()
Dim dbs As DAO.Database
Dim lngRowsAffected As Long
Dim lngRowsDeleted As Long
Dim sql$
sql = "[qry_Maui_Division_KWH_Produced]"
Set dbs = CurrentDb
' Execute runs both saved queries and SQL strings
dbs.Execute sql, dbFailOnError
' Get the number of rows affected by the Action query.
' You can display this to the user, store it in a table, or trigger an action
' if an unexpected number (e.g. 0 rows when you expect > 0).
lngRowsAffected = dbs.RecordsAffected
dbs.Execute "DELETE FROM tbl_Maui_Division_KWH_Produced WHERE Bad", dbFailOnError
lngRowsDeleted = dbs.RecordsAffected
End Sub
SQL код:
SELECT
tbl_MPP_DailyGenerationReport.DateLog,
[MPP_Daily_Gross_Gen_kWh]+[Total_Gross_kWh] AS Maui_Gross_kWh_Produced,
[Total_Aux]+[Total_Aux_kWh] AS Maui_Gross_Aux_kWh_Produced, [MPP_Daily_Gross_Gen_kWh]-[Total_Aux]+[Total_Net_kWh] AS Maui_Net_kWh_Produced,
Round(([Total_MBTU_Burned]*1000000)/([MPP_Daily_Gross_Gen_kWh]+[Total_Gross_kWh]),0) AS Maui_Gross_BTU_kWh,
Round([Total_MBTU_Burned]*1000000/([MPP_Daily_Gross_Gen_kWh]-[Total_Aux]+[Total_Net_kWh]),0) AS Maui_Net_BTU_kWh,
Round(([MPP_Daily_Gross_Gen_kWh]+[Total_Gross_kWh])/[Total_Barrels_Burned],0) AS Maui_Gross_kWh_BBL,
Round(([MPP_Daily_Gross_Gen_kWh]-[Total_Aux]+[Total_Net_kWh])/[Total_Barrels_Burned],0) AS Maui_Net_kWh_BBL
INTO tbl_Maui_Division_KWH_Produced
FROM ((tbl_MPP_DailyGenerationReport
INNER JOIN tbl_KPP_DailyGenerationReport
ON tbl_MPP_DailyGenerationReport.DateLog = tbl_KPP_DailyGenerationReport.DateLog)
INNER JOIN tbl_MPP_Aux_DailyGenerationReport
ON tbl_MPP_DailyGenerationReport.DateLog = tbl_MPP_Aux_DailyGenerationReport.DateLog)
INNER JOIN qry_Maui_Total_Fuel_Burned
ON tbl_MPP_DailyGenerationReport.DateLog = qry_Maui_Total_Fuel_Burned.DateLog
WHERE (((tbl_MPP_DailyGenerationReport.DateLog)=[Forms]![Power Supply Reports]![PS_Report_Date]));
Что 'qry_Maui_Division_KWH_Produced' делать? Можете ли вы разместить свой SQL? Вы уверены, что он работает, когда вы запускаете его напрямую (без vba)? – Andre
Я просто проверил, что он работает без vba. Он создает одну строку данных и помещает ее в таблицу, которая затем ссылается на отчет. Я положил код sql на сообщение. – lunar8nrg
Хорошо, я добавил Option Explicit и застрял на проблемах отладки. Я удалил объект таблицы уже в моем db, но теперь я получаю следующую ошибку во время выполнения: «3061: слишком мало параметров. Ожидаемое 1» при выполнении кода: dbs.Execute sql, dbFailOnError. От взгляда на мои локальные переменные все параметры выглядят на месте. Любые идеи, почему я все еще получаю сообщение об ошибке? – lunar8nrg