powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel
25 сообщений из 84, страница 2 из 4
Экспорт полей Запроса в лист Еexcel
    #39200865
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

я обычно всегда ставлю пробел в начало строки
Код: sql
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
Экспорт полей Запроса в лист Еexcel
    #39200876
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

Я в конце. Это дело вкуса.))) Как и символ продолжения строки _ по-разному ставят.
Здесь я на отсутствие пробела между чем-то и FROM не обратила внимания, упущение, конечно.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200953
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дамы и Господа Спасибо Всем. В итоге получилось так что перед From не было пробела. Поэтому возникали проблемы получилось. У меня такой вопрос код который написан он правилен, с точки зрения "хорошего кода" или над ним еще надо проработать?
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39200967
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

обычно делаю запрос по строкам, особенно если он сложный или со вставками
вообще не люблю, если строка длиннее ширины экрана редактора, чтобы видеть код весь сразу
---только по необходимости---
поэтому обычно делаю маленькие отступы(не более 2 символов)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub zrn01_click()

Dim s
If Len("" & [Forms]![ReportTotal]![ReportDataStart]) > 0 Then
s = ""
s = s & " SELECT ReportDate.ID_Balance,"
s = s & "  Sum(BalanceSheet.A_001) AS SumOfA_001,"
s = s & "  Sum(BalanceSheet.A_005) AS SumOfA_005 "
s = s & "  FROM ReportDate"
s = s & "    RIGHT JOIN BalanceSheet"
s = s & "     ON ReportDate.ID_Balance = BalanceSheet.ID_Balance"
s = s & "  GROUP BY ReportDate.ID_Balance"
s = s & "  HAVING ReportDate.ID_Balance=%1"
s = Replace(s, "%1", [Forms]![ReportTotal]![ReportDataStart])
Debug.Print s
DoCmd.RunSQL s
Else
MsgBox "не заполнено поле [Forms]![ReportTotal]![ReportDataStart]"
End If
End Sub
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201005
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даааа рано нарадовался. Когда не использую Критерию
Код: vbnet
1.
2.
3.
" HAVING (((ReportDate.ID_Balance)=" & _
[Forms]![ReportTotal]![ReportDataStart] & _
"))" 


то все ОК
Как только я вставляю эту шыуковину в код он начинает матерится и пишет ОШИБКА 2465 Не может найти во т эту штучку ReportDataStart почему????
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201012
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
меня смущает связь некого кода баланса и некой даты

 (((ReportDate.ID_Balance)=[Forms]![ReportTotal]![ReportDataStart]))



Отчеты по балансам ведется поквартально
то есть есть три филиала А В С (в реальности их 60), которые сдают поквартально баланс на
А-01.04.16, В-01.01.16 и С 01.04.16 я их группирую и создаю TotalBalance на 01.04.16
Потом эти же филиалы сдают нарастающим на 01.07.16 и опять таки я их группирую в один сводный баланс. и т.д.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201014
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При помощи Access-a я хочу получить суммы по колонке 01.01.16 и 01.04.16 и выгрузить их в Excel вот и мучаюсь. Может предложите друго вариант, Кстати если я запросом создам новую свормированную таблицу можно ли из таблицы выгрузить данные?
Спасибо всем
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201046
Фотография Ёжик`
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CopyFromRecordset
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201076
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser ArturДаааа рано нарадовался. Когда не использую Критерию
Код: vbnet
1.
2.
3.
" HAVING (((ReportDate.ID_Balance)=" & _
[Forms]![ReportTotal]![ReportDataStart] & _
"))" 



то все ОК
Как только я вставляю эту шыуковину в код он начинает матерится и пишет ОШИБКА 2465 Не может найти во т эту штучку ReportDataStart почему????

для этого и служит строка Debug.Print s , посмотреть в отладке, а то ли вы прицепили

ReportDate.ID_Balance --по идее --это код(может счетчик или число)
ReportDataStart---это же больше похоже на дату

в этом суть моего вопроса
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201079
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да она похожа на дату но поле текстовое, а в окошке having не выводится с чего бы это
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201080
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А copyrecordset он может выгрузить в конкретные яйчейки
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201082
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пенсионерка если у Вас если Вы решали такой пример можно посмотреть? Спасибо
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201086
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, надо так
Код: vbnet
1.
Forms.ReportTotal.Form.ReportDataStart
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201093
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

посмотрела вашу базу--финансы --армянский язык
конечно я делала немного по другому
--создавала рабочую таблицу по схеме отчета
--очищала столбцы с данными
--построчно заполняла данные отдельными запросами
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201218
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно Ваш пример посмотреть?
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201220
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michele а это в коде макроса вставить
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201224
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser ArturMichele а это в коде макроса вставитьЭто вопрос?
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201226
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.Form.ReportDataStart & _
      "))" 
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201235
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати,
если ReportDate.ID_Balance и Forms.ReportTotal.Form.ReportDataStart - текстовые,
то требуются кавычки. При формировании строки sql - двойные кавычки.
Код: 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.Form.ReportDataStart & _
      """))" 
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201246
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, что-то я Вам не того понаписала. Простите.
Там же не подчиненная форма, не нужно никаких дополнительных .Form..
Да еще и ! заменила на ..
Безобразие.(((

Может оказаться правдой только последнее сообщение - о кавычках,
если оба эти поля - текстовые.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201269
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все перерыл и ничего толком не нашел пойду другим путем. У меня возник вопрос или вернее просьба в совете код который я понаписал можно считать логическим построением, кроме конечно запроса?
Суть выбора, в форме ReportTotal выбрать дату отчета ReportDataStart и сгруппировать ее для далнейшего отправления в шаблон баланса. ReportDataStart - текстовое поле но берется он из ComboBoxa критерием которого служит порядковый номер таблици Balance поля ID_Balance - у которого тип числовой. Может поэтому конфликтует, хотя ReportDataStart числовой
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201311
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Private Sub Command2_Click()

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


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

str = "SELECT ReportDate.ID_Balance,"
str = str & " Sum(BalanceSheet.A_001) AS SumOfA_001,"
str = str & " Sum(BalanceSheet.A_005) AS SumOfA_005"
str = str & " FROM Zoramas"
str = str & " RIGHT JOIN (ReportDate"
str = str & " RIGHT JOIN BalanceSheet"
str = str & " ON ReportDate.ID_Balance = BalanceSheet.ID_Balance)"
str = str & " ON Zoramas.ID_Zoramas = BalanceSheet.ID_Zoramas"
str = str & " GROUP BY ReportDate.ID_Balance"
str = str & " HAVING ReportDate.ID_Balance=" & Me.ReportDateEnd
'Me.[ReportDataEnd]
Debug.Print str

Set rs = db.OpenRecordset(str)
rs.MoveLast
rs.MoveFirst
If rs.RecordCount > 0 Then
Debug.Print rs.Fields(1).Name
aaa = rs.Fields("SumOfA_001")
abc = rs.Fields("SumOfA_005")


With objWS

.Cells(3, 3).Value = aaa
''.Cells(3, 6).Value = Me.Label1.Caption

.Cells(4, 3).Value = abc

End With
End If
objXL.Visible = True

End Sub
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201331
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser ArturОШИБКА 2465 Не может найти во т эту штучку ReportDataStart почему????
Я уже 2 раза об этом написал. ПЕНСОНЕРКА вот даже вариант предложила.
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201474
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет матерится я создал два запроса на добавление таблицы 1 для начальной даты 2-й для отчетной даты
Теперь возникает вопрос как передать из созданных таблиц 1 и 2 в шаблон Excel
...
Рейтинг: 0 / 0
Экспорт полей Запроса в лист Еexcel
    #39201506
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменял макрос для вновь созданной таблицы 1, который был сформирован через запрос на создание таблицы

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Command7_Click()
Dim dbs As Database
Dim tabl As DAO.Recordset
Dim a, b As String
Dim objXL As Object
Dim objWB As Object
Dim objWS As Object

Set objXL = CreateObject("Excel.Application")
Set objWB = objXL.Workbooks.Open("C:\Templates\test1.xls")
Set objWS = objWB.Worksheets("A")
Set dbs = CurrentDb()

Set tabl = dbs.OpenRecordset("TotalBalance1", dbOpenTable)
a = tabl("SumOfA_001")
With objWS
.Cells(14, 1).Value = a

End With
MsgBox "Export sucesfuly."
End Sub



но че то не перенес данные в шаблон, почему?
Подсобите
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт полей Запроса в лист Еexcel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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