powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel
25 сообщений из 84, страница 1 из 4
Экспорт полей Запроса в лист Еexcel
    #39200567
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста что я делаю не так. При нажатии на кнопке выдает
Код: vbnet
1.
Run-time error 3601 Too few parametrs. Expected 1


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Option Compare Database

Private Sub Command2_Click()

Dim rs As DAO.Recordset
Dim db As Database
Dim str As String
Dim abc, abc1 As String
Dim objXL As Object
Dim objWB As Object
Dim objWS As Object


Set objXL = CreateObject("Excel.Application")
Set objWB = objXL.Workbooks.Open("E:\testfile.xlsx")
Set objWS = objWB.Worksheets("A")
Set db = CurrentDb()

str = "SELECT ID_Balance, SumOfA_001, SumOfA_005 FROM QueryTotalStart"
Set rs = db.OpenRecordset(str)
abc = rs("A_001")
abc1 = rs("A_005")



With objWS
.Cells(3, 3).Value = abc
.Cells(4, 3).Value = abc1

End With
objXL.Visible = True

End Sub
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200570
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем матерится на Set rs = db.OpenRecordset(str)
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200581
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот запрос
Код: vbnet
1.
2.
3.
4.
SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005
FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance
GROUP BY ReportDate.ID_Balance
HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]));
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200645
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта ошибка возникает, когда при попытке открыть запрос тот запрашивает недостающий параметр. Скорее всего это [Forms]![ReportTotal]![ReportDataStart]. Проверьте, открыта ли форма и не запрашивает ли параметр запрос при попытке выполнить его в конструкторе. В некоторых случаях запрос может не видеть форму, даже если она открыта.
Лучше всего в запросе не ссылаться на форму, а добавить параметр, который заполнять при обращении к запросу.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200650
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не силен в макросах Аккесс можете пример кода подскажать
Код: vbnet
1.
 добавить параметр, который заполнять при обращении к запросу


Спасибо за ответ
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200674
Lockpickup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скопируйте из окна Immidiate, что там будет после выполнения
Код: vbnet
1.
2.
3.
4.
5.
SQL=SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005
FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance
GROUP BY ReportDate.ID_Balance
HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]));
debug.print SQL
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200685
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потом убрать из запроса ссылку на форму???
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200694
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По логике я так вписал но показал Run-time error 3141
Код: vbnet
1.
2.
3.
4.
5.
6.
sql = "SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005" & _
"FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance GROUP BY ReportDate.ID_Balance" & _
" HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))"
Debug.Print sql

Set rs = db.OpenRecordset(sql)


Правильно?
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200726
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сам файл
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200727
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200734
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не заморачиваться с запросом а взять информацию из полей вновь созданной таблицы TotalBalance1, тогда как из полей экспортировать в конкретные яйчеки шаблона Excel
Спасибо Всем
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200758
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал так
Код: vbnet
1.
2.
3.
4.
Private Sub Command7_Click()
CurrentDb.QueryDefs("QueryTotalEnd").SQL = "select ReportDate.ID_Balance,Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005 FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance where ReportDate.ID_Balance=Me.ReportDataEnd"
DoCmd.TransferSpreadsheet acExport, , "QueryTotalEnd", "E:\testfile.xlsx"
End Sub


Пишет Run-time 3122
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200770
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подправил но опять не то
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Command7_Click()
CurrentDb.QueryDefs("QueryTotalEnd").SQL = "select Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005 FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance where ReportDate.ID_Balance=Me.ReportDataEnd"
DoCmd.TransferSpreadsheet acExport, , "QueryTotalEnd", "E:\testfile.xlsx", True

 
End Sub



3422
Cannot modify table structure
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200785
Lockpickup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
sql = "SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005" & _
"FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance GROUP BY ReportDate.ID_Balance" & _
" HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))"
Debug.Print sql


После выполнения этого кода, что в окошке (см. рисунок) написано?
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200799
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Runtime error 3078
The MS Access database engine cannot find the input table or query ", Make sure it existsthat its name is spelled correctly
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200802
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Private Sub Command2_Click()

Dim rs As DAO.Recordset
Dim db As Database
Dim str As String
Dim aaa, abc, abc1 As String
Dim objXL As Object
Dim objWB As Object
Dim objWS As Object


Set objXL = CreateObject("Excel.Application")
Set objWB = objXL.Workbooks.Open("E:\testfile.xlsx")
Set objWS = objWB.Worksheets("A")
Set db = CurrentDb()

SQL = "SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005" & _
"FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance GROUP BY ReportDate.ID_Balance" & _
" HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))"
Debug.Print SQL
Set rs = db.OpenRecordset(str)
abc1 = rs("DateBalance")
aaa = rs("SumOfA_001")
abc = rs("SumOfA_005")


With objWS
.Cells(2, 3).Value = abc1
.Cells(3, 3).Value = aaa
.Cells(4, 3).Value = abc

End With
objXL.Visible = True

End Sub


Матерится здесь
Код: vbnet
1.
Set rs = db.OpenRecordset(str)
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200812
Вы считаете, что заменив [Forms]![ReportTotal]![ReportDataStart] на Me.ReportDataEnd, вы убрали ссылку на форму? С таким вариантом вы запрос и на экране не откроете...
Если хотите, чтоб ваш первоначальный код работал, то:
Код: vbnet
1.
2.
3.
4.
Set db = CurrentDb
Set qdf = db.QueryDefs("QueryTotalEnd")
qdf.Parameters("[Forms]![ReportTotal]![ReportDataStart]") = Forms![ReportTotal]![ReportDataStart] 'Или Me!ReportDataEnd
qdf.OpenRecordset


Если работать с SQL выражением, то:
Код: vbnet
1.
2.
strSQL = "select ReportDate.ID_Balance, ... where ReportDate.ID_Balance=" & Format(Me!ReportDataEnd,"\#MM\/DD\/YYYY\#")
CurrentDb.OpenRecordset(strSQL)


И еще, в вашем запросе:
HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]));
это работает, но медленнее, чем:
WHERE (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]));
(Только WHERE должно быть перед GROUP BY)
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200814
Lockpickup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз: что написано в Immidiate?
Полный текст, copy+paste
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200816
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код не видит поля формы. Избавьтесь от [Forms]![ReportTotal]![ReportDataStart] используя глобальную функцию или, как я уже говорил, параметр.

Можно проверить в окне Immediate:
Код: vbnet
1.
?[Forms]![ReportTotal]![ReportDataStart]


скорее всего выдаст ошибку
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200821
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз: что написано в Immidiate? НИЧЕГО
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200824
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v Immediate выдало

Код: vbnet
1.
SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance GROUP BY ReportDate.ID_Balance HAVING (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200825
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста я уже загнал себя в тупик. Уже не знаю что и придумать.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200834
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

меня смущает связь некого кода баланса и некой даты

Код: vbnet
1.
 (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200837
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

а здесь нет пробела перед from
Код: sql
1.
 AS SumOfA_005FROM ReportDat
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200844
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы формируете строку запроса в VBA?
Не касаясь сути запроса и степени его правильности, только о передаче значения из формы
Код: vbnet
1.
2.
3.
4.
5.
sql = "SELECT ReportDate.ID_Balance, Sum(BalanceSheet.A_001) AS SumOfA_001, Sum(BalanceSheet.A_005) AS SumOfA_005" & _ 
"FROM ReportDate RIGHT JOIN BalanceSheet ON ReportDate.ID_Balance = BalanceSheet.ID_Balance GROUP BY ReportDate.ID_Balance" & _ 
" HAVING (((ReportDate.ID_Balance)=" & _
[Forms]![ReportTotal]![ReportDataStart] & _
"))" 
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 1 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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