powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос с двумя параметрами
28 сообщений из 28, показаны все 2 страниц
Запрос с двумя параметрами
    #39203041
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В топике http://www.sql.ru/forum/1206911/eksport-poley-zaprosa-v-list-eexcel был вопрос про экспорт в Excel.
Задачка была решена при помощи добрых людей. Создал я макросом код для экспорта в Excel который берет 2 заданные даты из формы, формирует отчет и экспортирует данные из ЗАПРОСА по начальными и конечными датами в Excel.
Teперь получается что надо еще и по филиалам, то есть:
- если на форме ReportTotal, в поле Filial выбрать филиал А то отчет выводил только Баланс по датам и филиалу
- если ничего не брать то выводил суммированный отчет по датам без филиалов








"Бухгалтера можно уподобить пчеловоду, ибо от его труда - учетной информации - извлекают пользу очень многие, но трудится он один. М.Ф. Ван Бреда"
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203055
Фотография 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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
Private Sub Command23_Click()
    Dim Amsativ, a, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 As Variant
    Dim p, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 As Variant
    Dim db As DAO.Database
    Dim rst, rst1 As DAO.Recordset
    Dim qdf, qdf1 As DAO.QueryDef
    Dim prm As Parameter
    Dim objXL As Object
    Dim objWB As Object
    Dim objWS As Object
    FileCopy "C:\Templates\FORM1.xlsx", "C:\Templates\Balance.xlsx"

    Set objXL = CreateObject("Excel.Application")
    Set objWB = objXL.Workbooks.Open("C:\Templates\Balance.xlsx")
    Set objWS = objWB.Worksheets("Balance_Total")
    objXL.Visible = True

    Set db = CurrentDb
    Set qdf = db.QueryDefs("QueryTotalEnd")
    Set qdf1 = db.QueryDefs("QueryTotalStart")
    
    For Each prm In qdf.Parameters
        Debug.Print prm.Name
        prm.Value = Eval(prm.Name)
    Next prm
    Set rst = qdf.OpenRecordset(dbOpenDynaset)
rst.MoveLast
rst.MoveFirst

a = rst("SumOfA_001")
a1 = rst("SumOfA_005")
a2 = rst("SumOfA_007")
a3 = rst("SumOfA_011")
a4 = rst("SumOfA_019")
a5 = rst("SumOfA_020")
a6 = rst("SumOfA_022")
a7 = rst("SumOfA_023")
a8 = rst("SumOfA_024")
a9 = rst("SumOfA_025")
a10 = rst("SumOfA_026")
a11 = rst("SumOfA_027")
a12 = rst("SumOfA_029")
a13 = rst("SumOfA_030")
a14 = rst("SumOfA_031")
a15 = rst("SumOfA_034")
a16 = rst("SumOfA_035")
p = rst("SumOfP_043")
p1 = rst("SumOfP_044")
p2 = rst("SumOfP_045")
p3 = rst("SumOfP_051")
p4 = rst("SumOfP_052")
p5 = rst("SumOfP_053")
p6 = rst("SumOfP_054")
p7 = rst("SumOfP_058")
p8 = rst("SumOfP_059")
p9 = rst("SumOfP_060")
p10 = rst("SumOfP_061")
p11 = rst("SumOfP_062")
p12 = rst("SumOfP_064")
p13 = rst("SumOfP_067")
p14 = rst("SumOfP_070")

With objWS
.Cells(32, 3).Value = a
.Cells(33, 3).Value = a
.Cells(34, 3).Value = a1 + a2
.Cells(35, 3).Value = a1
.Cells(36, 3).Value = a2
.Cells(37, 3).Value = a3 + a4 + a5 + a6 + a7
.Cells(38, 3).Value = a3
.Cells(39, 3).Value = a4
.Cells(40, 3).Value = a5
.Cells(41, 3).Value = a6
.Cells(42, 3).Value = a7
.Cells(43, 3).Value = a8 + a9 + a10 + a11 + a12 + a13
.Cells(44, 3).Value = a8
.Cells(45, 3).Value = a9
.Cells(46, 3).Value = a10
.Cells(47, 3).Value = a11
.Cells(48, 3).Value = a12
.Cells(49, 3).Value = a13
.Cells(50, 3).Value = a14 + a15 + a16
.Cells(51, 3).Value = a14
.Cells(52, 3).Value = a15
.Cells(53, 3).Value = a16
.Cells(54, 3).Value = a + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16
.Cells(32, 8).Value = p + p1 + p2
.Cells(33, 8).Value = p
.Cells(34, 8).Value = p1
.Cells(35, 8).Value = p2
.Cells(36, 8).Value = p3 + p4 + p5 + p6
.Cells(37, 8).Value = p3
.Cells(38, 8).Value = p4
.Cells(39, 8).Value = p5
.Cells(40, 8).Value = p6
.Cells(41, 8).Value = p7 + p8 + p9 + p10 + p11 + p12 + p13 + p14
.Cells(42, 8).Value = p7
.Cells(43, 8).Value = p8
.Cells(44, 8).Value = p9
.Cells(45, 8).Value = p10
.Cells(46, 8).Value = p11
.Cells(47, 8).Value = p12
.Cells(48, 8).Value = p13
.Cells(49, 8).Value = p14
.Cells(50, 8).Value = p + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 + p11 + p12 + p13 + p14
End With

For Each prm In qdf1.Parameters
        Debug.Print prm.Name
        prm.Value = Eval(prm.Name)
    Next prm
    Set rst1 = qdf1.OpenRecordset(dbOpenDynaset)
rst1.MoveLast
rst1.MoveFirst
Amsativ = rst1("Amsativ")
a = rst1("SumOfA_001")
a1 = rst1("SumOfA_005")
a2 = rst1("SumOfA_007")
a3 = rst1("SumOfA_011")
a4 = rst1("SumOfA_019")
a5 = rst1("SumOfA_020")
a6 = rst1("SumOfA_022")
a7 = rst1("SumOfA_023")
a8 = rst1("SumOfA_024")
a9 = rst1("SumOfA_025")
a10 = rst1("SumOfA_026")
a11 = rst1("SumOfA_027")
a12 = rst1("SumOfA_029")
a13 = rst1("SumOfA_030")
a14 = rst1("SumOfA_031")
a15 = rst1("SumOfA_034")
a16 = rst1("SumOfA_035")
p = rst1("SumOfP_043")
p1 = rst1("SumOfP_044")
p2 = rst1("SumOfP_045")
p3 = rst1("SumOfP_051")
p4 = rst1("SumOfP_052")
p5 = rst1("SumOfP_053")
p6 = rst1("SumOfP_054")
p7 = rst1("SumOfP_058")
p8 = rst1("SumOfP_059")
p9 = rst1("SumOfP_060")
p10 = rst1("SumOfP_061")
p11 = rst1("SumOfP_062")
p12 = rst1("SumOfP_064")
p13 = rst1("SumOfP_067")
p14 = rst1("SumOfP_070")

With objWS
.Cells(14, 1).Value = Amsativ
.Cells(32, 4).Value = a
.Cells(33, 4).Value = a
.Cells(34, 4).Value = a1 + a2
.Cells(35, 4).Value = a1
.Cells(36, 4).Value = a2
.Cells(37, 4).Value = a3 + a4 + a5 + a6 + a7
.Cells(38, 4).Value = a3
.Cells(39, 4).Value = a4
.Cells(40, 4).Value = a5
.Cells(41, 4).Value = a6
.Cells(42, 4).Value = a7
.Cells(43, 4).Value = a8 + a9 + a10 + a11 + a12 + a13
.Cells(44, 4).Value = a8
.Cells(45, 4).Value = a9
.Cells(46, 4).Value = a10
.Cells(47, 4).Value = a11
.Cells(48, 4).Value = a12
.Cells(49, 4).Value = a13
.Cells(50, 4).Value = a14 + a15 + a16
.Cells(51, 4).Value = a14
.Cells(52, 4).Value = a15
.Cells(53, 4).Value = a16
.Cells(54, 4).Value = a + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16
.Cells(32, 9).Value = p + p1 + p2
.Cells(33, 9).Value = p
.Cells(34, 9).Value = p1
.Cells(35, 9).Value = p2
.Cells(36, 9).Value = p3 + p4 + p5 + p6
.Cells(37, 9).Value = p3
.Cells(38, 9).Value = p4
.Cells(39, 9).Value = p5
.Cells(40, 9).Value = p6
.Cells(41, 9).Value = p7 + p8 + p9 + p10 + p11 + p12 + p13 + p14
.Cells(42, 9).Value = p7
.Cells(43, 9).Value = p8
.Cells(44, 9).Value = p9
.Cells(45, 9).Value = p10
.Cells(46, 9).Value = p11
.Cells(47, 9).Value = p12
.Cells(48, 9).Value = p13
.Cells(49, 9).Value = p14
.Cells(50, 9).Value = p + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 + p11 + p12 + p13 + p14
End With

rst.Close
rst1.Close
Set rst = Nothing
Set rst1 = Nothing
Set objWB = Nothing

objXL.ScreenUpdating = True

'Do Until rst.EOF
'        MsgBox qdf.Name & " - " & rst!Amsativ
'    rst.MoveNext
'    Loop

End Sub


где в роли параметров служит
Код: vbnet
1.
2.
3.
4.
For Each prm In qdf1.Parameters
        Debug.Print prm.Name
        prm.Value = Eval(prm.Name)
    Next prm


Но как быть с ТРЕТИМ ПАРАМЕТРОМ если он будет равно НУЛЮ упс осенила мысль использовать OR Сейчас попробую
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203064
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

МОЖЕТ и базу выложите , где применяете этот запрос
цифровые данные могут быть условные, название желательно на русском
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203067
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет оператор OR не покатил выдает 0 или только по филиалу
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203077
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203078
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там файл FORM1 скопируйте в C:\Templates\
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203159
Например...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
If IsNull(Forms![ИмяФормы]![Филиал]) Then
    Set qdf = db.QueryDefs("QueryTotalEnd")
    Set qdf1 = db.QueryDefs("QueryTotalStart")
Else
    Set qdf = db.CreateQueryDef("", "SELECT * FROM QueryTotalEnd WHERE [Филиал] = " & Forms![ИмяФормы]![Филиал]) 'Это если "Филиал" - числовое поле, если текстовое, то добавить кавычки.
    Set qdf1 = ... 'аналогично
End If

Интересно, а чем у вас отличаются запросы?
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203185
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1-й запрос на начальную дату 2-й на предыдущую. А что можно и одним запросом?????
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203187
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин не догадался сразу конечно же можно через if сейчас же попробую
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203198
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
 Set qdf = db.CreateQueryDef("", "SELECT * FROM QueryTotalEnd WHERE [Филиал] = " & Forms![ИмяФормы]![Филиал]) 'Это если "Филиал" - числовое поле, если текстовое, то добавить кавычки.
    Set qdf1 = ... 'аналогично


здесь указывать имя запроса?
Код: vbnet
1.
db.CreateQueryDef(""...
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203199
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс там же ясно видно имя запроса простите
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203212
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос экспортирует первый филиал и на втором виснет
Код: vbnet
1.
Ошибка 2482 MS Access cannot the name ID_filial you entered the expression
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203229
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A нет здесь другое
1 случай когда надо суммировать по датам не включая филиал например на 01.01.2016............01.04.2016
2 случай когда надо по филиалу и по датам например Филиал..........на 01.01.2016........01.04.2016
тогда не подходит
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203234
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот файл
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203235
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эээ
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203269
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

ВАМ видимо намного легче было бы работать с такой схемой(с поиском)
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203271
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,
файл
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203304
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну возможно легче но отчет же выадает толко выбранную дату а за предыдущую надо еще поискать и вывести на бумагу. Как то не правильно получается заморочек много.
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203307
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

итоги --не проблема
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203312
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

невозможно было понять схему ваших таблиц, а итоги понадобятся разные

сводные итоги

1кв2кв1полугодие3к4к2пгодфирма1фирма2фирма3

итоги по видам статей для всех
1кв2кв1полугодие3к4к2пгодст1ст2ст3

и еще 999 сочетаний
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203313
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что ли
Анатолий ( Киев )
Код: vbnet
1.
2.
Set qdf = db.CreateQueryDef("", "SELECT * FROM QueryTotalEnd WHERE [ID_filial] = " & Forms![ReportTotal]![Organization])
  Set qdf1 = db.CreateQueryDef("", "SELECT * FROM QueryTotalStart WHERE [ID_filial] = " & Forms![ReportTotal]![Organization])
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203321
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо из этого получить
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203326
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203331
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,
столбиков в аксесс может быть только 256 ---это вам не ексель
другие законы

и напечатать таблицу гармошкой тоже не получится(максимальная ширина отчета55 см)
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203336
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я знаю поэтому не хочется ее через отчет выводить, а что касается столбцов то там будет меньше 50
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203385
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А такой вопрос
Две формы Balance и BalanceEdit могут ссылаться на одну и ту же SUBFORM-у?
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203416
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылаться (если то, на что ссылаются, открыто) или иметь в качестве подчиненной одну и ту же форму?
Можно и то, и другое.
...
Рейтинг: 0 / 0
Запрос с двумя параметрами
    #39203601
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл в том чтоб при вызове формы Balance заполнить данные, а BalanceEdit для редактирования заполненных данных
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос с двумя параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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