Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel / 25 сообщений из 84, страница 1 из 4
25.03.2016, 13:43
    #39200567
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Помогите пожалуйста что я делаю не так. При нажатии на кнопке выдает
Код: 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
25.03.2016, 13:45
    #39200570
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Причем матерится на Set rs = db.OpenRecordset(str)
...
Рейтинг: 0 / 0
25.03.2016, 13:51
    #39200581
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Вот запрос
Код: 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
25.03.2016, 14:26
    #39200645
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Эта ошибка возникает, когда при попытке открыть запрос тот запрашивает недостающий параметр. Скорее всего это [Forms]![ReportTotal]![ReportDataStart]. Проверьте, открыта ли форма и не запрашивает ли параметр запрос при попытке выполнить его в конструкторе. В некоторых случаях запрос может не видеть форму, даже если она открыта.
Лучше всего в запросе не ссылаться на форму, а добавить параметр, который заполнять при обращении к запросу.
...
Рейтинг: 0 / 0
25.03.2016, 14:33
    #39200650
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Я не силен в макросах Аккесс можете пример кода подскажать
Код: vbnet
1.
 добавить параметр, который заполнять при обращении к запросу


Спасибо за ответ
...
Рейтинг: 0 / 0
25.03.2016, 14:48
    #39200674
Lockpickup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Скопируйте из окна 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
25.03.2016, 14:53
    #39200685
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
потом убрать из запроса ссылку на форму???
...
Рейтинг: 0 / 0
25.03.2016, 14:58
    #39200694
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
По логике я так вписал но показал 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
25.03.2016, 15:15
    #39200726
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Вот сам файл
...
Рейтинг: 0 / 0
25.03.2016, 15:15
    #39200727
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
упс

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
25.03.2016, 15:17
    #39200734
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
А если не заморачиваться с запросом а взять информацию из полей вновь созданной таблицы TotalBalance1, тогда как из полей экспортировать в конкретные яйчеки шаблона Excel
Спасибо Всем
...
Рейтинг: 0 / 0
25.03.2016, 15:40
    #39200758
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Попробовал так
Код: 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
25.03.2016, 15:55
    #39200770
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
подправил но опять не то
Код: 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
25.03.2016, 16:16
    #39200785
Lockpickup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Код: 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
25.03.2016, 16:30
    #39200799
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
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
25.03.2016, 16:32
    #39200802
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Код: 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
25.03.2016, 16:46
    #39200812
Экспорт полей Запроса в лист Еexcel
Вы считаете, что заменив [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
25.03.2016, 16:47
    #39200814
Lockpickup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Еще раз: что написано в Immidiate?
Полный текст, copy+paste
...
Рейтинг: 0 / 0
25.03.2016, 16:49
    #39200816
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Код не видит поля формы. Избавьтесь от [Forms]![ReportTotal]![ReportDataStart] используя глобальную функцию или, как я уже говорил, параметр.

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


скорее всего выдаст ошибку
...
Рейтинг: 0 / 0
25.03.2016, 16:56
    #39200821
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Еще раз: что написано в Immidiate? НИЧЕГО
...
Рейтинг: 0 / 0
25.03.2016, 16:58
    #39200824
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
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
25.03.2016, 16:59
    #39200825
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Помогите пожалуйста я уже загнал себя в тупик. Уже не знаю что и придумать.
...
Рейтинг: 0 / 0
25.03.2016, 17:06
    #39200834
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Ser Artur,

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

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

а здесь нет пробела перед from
Код: sql
1.
 AS SumOfA_005FROM ReportDat
...
Рейтинг: 0 / 0
25.03.2016, 17:16
    #39200844
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт полей Запроса в лист Еexcel
Вы формируете строку запроса в 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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel / 25 сообщений из 84, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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