Вывод данных в отчет |
Me.RecordSource = "SELECT * FROM Таблица WHERE Цена>=" & Me.ПоискМин & " and Цена<=" & Me.ПоискМаксНа форме также используется фильтр для отбора по другим критериям. Вроде всё работает нормально. Я использую
DoCmd.OpenReport "Отчет", acViewPreview, IIf(Me.FilterOn, Me.Filter, "")и туда выводятся записи, которые отобраны фильтром, а диапазон цен уже не работает в данном случае. У меня получается вывести записи которые отобраны Me.RecordSource... или по фильтру. В области данных они показываются, а в отчёт идёт только одно. Как вывести в отчёт записи, которые отобраны по Me.RecordSource и фильтру одновременно? Me.RecordSource может быть и пустым, т.е. не используется в данный момент для отбора.
|
Вывод запроса в excel |
SELECT Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament, SUM(Monitoring.Kol_vo_zayaviteley) AS [Sum-Kol_vo_zayaviteley1], SUM(Monitoring.Kol_vo_predost_uslug) AS [Sum-Kol_vo_predost_uslug], SUM(Monitoring.Vsego_okazano_uslug_el) AS [Sum-Vsego_okazano_uslug_el] FROM ((Otr_organ INNER JOIN Users ON Otr_organ.ID_otr_organa = Users.ID_user) INNER JOIN Uslugi ON Otr_organ.ID_otr_organa = Uslugi.ID_otr_organ) INNER JOIN Monitoring ON Uslugi.ID_uslugi = Monitoring.ID_uslugi WHERE (((Users.ID_user)=[Код]) AND ((Monitoring.God)=[Год])) GROUP BY Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament;
Private Sub Кнопка48_Click() Dim xlSheet As Excel.Worksheet Dim wbTarget As Workbook Dim xlApp As Excel.Application Dim fileXLT As String, fileXLS As String, strQry As String Dim rs As ADODB.Recordset Dim MyQueryTable As Excel.QueryTable Dim obj As Excel.Range Dim strMax As String Dim a As Variant Dim b As Variant Dim c As Variant 'Определяем имена шаблона и документа fileXLT = CurrentProject.Path & "\Мониторинг_год.xltm" fileXLS = CurrentProject.Path & "\Мониторинг_год.xlsx" If Dir(fileXLS) <> "" Then If MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin") = vbNo Then 'если выбрали нет (не заменять), тогда просто открываем документ Set xlApp = CreateObject("Excel.Application") With xlApp .Workbooks.Open fileXLS .Visible = True End With Set xlApp = Nothing Else 'если выбрали да - удаляем файл fDeleteFile (fileXLS) GoTo lab 'и переходим к созданию нового документа End If Else lab: 'вставляем таблицу из запроса 'в шаблоне пишем в нужном месте метку ZT - с нее начнется вставка данных таблицы a = Forms!MainForm!Spisok' поле с кодом пользователя c = Forms!MonitoringExcel!Date_god' поле ввода года Z = Forms!Invisible_form!plStatus 'Статус If Z = "Admin" Then' запрос для админа с 1 параметром без выбора отраслевого орагана/кода пользователя strQry = "SELECT Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament, Sum(Monitoring.Kol_vo_zayaviteley) AS [Sum-Kol_vo_zayaviteley1], Sum(Monitoring.Kol_vo_predost_uslug) AS [Sum-Kol_vo_predost_uslug], Sum(Monitoring.Vsego_okazano_uslug_el) AS [Sum-Vsego_okazano_uslug_el] FROM ((Otr_organ INNER JOIN Users ON Otr_organ.ID_otr_organa = Users.ID_user) INNER JOIN Uslugi ON Otr_organ.ID_otr_organa = Uslugi.ID_otr_organ) INNER JOIN Monitoring ON Uslugi.ID_uslugi = Monitoring.ID_uslugi WHERE (((Monitoring.God) = ('" & с & "'))) GROUP BY Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament;" Else' запрос с 2 параметрами strQry = "SELECT Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament, Sum(Monitoring.Kol_vo_zayaviteley) AS [Sum-Kol_vo_zayaviteley1], Sum(Monitoring.Kol_vo_predost_uslug) AS [Sum-Kol_vo_predost_uslug], Sum(Monitoring.Vsego_okazano_uslug_el) AS [Sum-Vsego_okazano_uslug_el] FROM ((Otr_organ INNER JOIN Users ON Otr_organ.ID_otr_organa = Users.ID_user) INNER JOIN Uslugi ON Otr_organ.ID_otr_organa = Uslugi.ID_otr_organ) INNER JOIN Monitoring ON Uslugi.ID_uslugi = Monitoring.ID_uslugi WHERE (((Users.ID_user) = (" & a & ")) And ((Monitoring.God) = ('" & с & "'))) GROUP BY Otr_organ.Naimenovanie, Uslugi.Naimenovanie, Uslugi.Adm_reglament" End If Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open strQry, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText Set xlApp = CreateObject("Excel.Application") 'создаем объект Excel With xlApp .Workbooks.Open fileXLT 'Открываем файл .WindowState = xlMaximized 'разворачиваем во весь экран .Visible = True 'Отображаем документ Set xlSheet = .Sheets(1) 'переходим на первый лист With xlSheet Set obj = .Cells.Find("ZT") 'ищем ячейку с текстом ZT If Not obj Is Nothing Then obj.Activate 'переходим в найденную ячейку - тут будет начало таблицы obj.Clear 'очищаем ячейку Set MyQueryTable = .QueryTables.Add(rs, Destination:=obj) 'цепляем данные из запроса With MyQueryTable .FieldNames = False .Refresh 'закачиваем данные .Application.Run "Test" End With xlSheet.Name = Forms!MonitoringExcel!Date_god Set obj = Nothing End If End With End With 'закрываем рекордсет и пременные rs.Close Set rs = Nothing Set xlSheet = Nothing Set MyQueryTable = Nothing Set xlApp = Nothing If Z = "Admin" Then Forms!MainForm.Visible = True DoCmd.Close acForm, "MonitoringExcel" Else Forms!Monitoring.Visible = True DoCmd.Close acForm, "MonitoringExcel" End If End If Exit Sub Err_: MsgBox Err.Description 'сообщение об ошибке Err.Clear 'Закрываем Excel (если открыта объектная переменная) If Not xlApp Is Nothing Then xlApp.Quit End Sub 'удаление файла Function fDeleteFile(strPath As String) As Boolean On Error GoTo Err_ Dim fs Set fs = CreateObject("Scripting.FileSystemObject") fs.DeleteFile strPath Set fs = Nothing fDeleteFile = True Exit Function Err_: MsgBox Err.Description, vbCritical, strPath Err.Clear fDeleteFile = False End Function 'вставка данных в заданную ячейку Function funInsertDate(ByVal Z As String, ByVal strDate As String) On Error GoTo Err_ Dim obj As Excel.Range Dim xlApp As Excel.Application Set xlApp = GetObject(, "Excel.Application") Set obj = xlApp.ActiveCell.Find(Z) 'ищем ячейку с заданным параметром Z текстом If Not obj Is Nothing Then With obj .Activate 'переходим в найденную ячейку .FormulaR1C1 = strDate 'вставляем данные End With End If Set obj = Nothing Set xlApp = Nothing Exit Function Err_: MsgBox Err.Description 'сообщение об ошибке Err.Clear End Function
SET MyQueryTable = .QueryTables.ADD(rs, Destination:=obj) 'цепляем данные из запроса
|
Select в insert |
Insert into Физлицо ([Код],[Фамилия]) Values (SELECT MAX(Код)+1 FROM Физлицо,'"+ Edit1->Text +"')
SELECT MAX(Код)+1 FROM Физлицона какое либо значение то работает выдавая ошибку что недостаточно информации о ключевом столбце но данные все равно вставляет
|
Подстановка в поля |
=DLookUp("№_паспорта";"Клиенты";"Код_клиента=" & [ПолеСоСписком148].[Column](0))для каждого своё. Подскажите, как сделать, чтоб при загрузке формы все поля были пустыми, а не такие как сейчас #Ошибка. Пробовал добавить в формат поля @;"" и не помогло.
|
Фильтр для функции. |
+Функция |
Public Function DPersent(strNameFields As String, strNameTBL As String, Optional strFilter As String = "", Optional p As Integer) As Variant 'ôóíêöèÿ âû÷èñëåíèÿ ïåðñåíòèëè 'èñïîëüçîâàíèå àíàëîãè÷íî DCount,DMax è ò.ï. 'strNameFields - èìÿ ïîëÿ ñ äàííûìè 'strNameTBL - íàçâàíèå òàáëèöû èëè ñîõðàíåííîãî çàïðîñà 'strFilter - ñòðîêà ôèëüòðà 'p - çíà÷åíèå ïåðñåíòèëè â èíòåðâàëå 0-100 'strFilter = "CODE" strNameTBL = "tbl_pdv" strNameFields = "VALUE" p = 90 Dim rst As ADODB.Recordset Dim lngCount As Long Dim k, part, x1, x2 As Double On Error GoTo Err_dPersent lngCount = Nz(DCount("*", strNameTBL, strFilter), 0) If lngCount = 0 Then DPersent = Null: Exit Function Set rst = New ADODB.Recordset rst.Open "select " & strNameFields & " from " & strNameTBL & IIf(strFilter = "", "", " where " & strFilter) & " order by " & strNameFields, CurrentProject.Connection, adOpenKeyset, adLockReadOnly If lngCount = 1 Then DPersent = Nz(rst.Fields(0), 0): Set rst = Nothing: Exit Function k = p * (lngCount - 1) / 100 + 1 If (k / Int(k)) = 0 Or (k / Int(k)) = 1 Then rst.AbsolutePosition = CLng(k) DPersent = Nz(rst.Fields(0), 0) Else part = k - Int(k) rst.AbsolutePosition = CLng(Int(k)) x1 = Nz(rst.Fields(0), 0) rst.MoveNext x2 = Nz(rst.Fields(0), 0) DPersent = (1 - part) * x1 + part * x2 End If Set rst = Nothing Exit_dPersent: Exit Function Err_dPersent: Select Case Err.Number Case Else MsgBox "(" & Err.Number & ") " & Err.Description & " â ïðîöåäóðå dPersent " Resume Exit_dPersent End Select End Function |
+Таблица | |||||||||||||||||||||||||||||||||||
|
|
Имитация тернарного чекбокса... |
!RRRComboBox.RowSourceType = "Value List" .ColumnCount = 2 .ColumnHeads = False .BoundColumn = 1 .ColumnWidths = "0см;6см;" .ListWidth = 0 'ширина списка = Авто !RRRComboBox.RowSource = """0""; (нет данных); ""1""; ""Да""; ""2""; ""Нет""" !RRRComboBox.Value = ???
http://www.sql.ru/forum/1159146/imitaciya-ternarnogo-chekboksa
|
Программно создать соединение ODBC |
http://www.sql.ru/forum/1159143/programmno-sozdat-soedinenie-odbc
|
Как узнать ID новой вставленной записи |
cnn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=OLAP_DWH_DEV;Data Source=wruistb008" cnn.Open rst.Open sqlquery, cnn, adOpenStatic, adLockOptimistic rst.AddNew rst.Fields("Date_start_promo").Value = Date ... rst.Update ID = rst.Fields("ID_Promo").Value
http://www.sql.ru/forum/1159083/kak-uznat-id-novoy-vstavlennoy-zapisi
|
Не работает ActiveX (ListView) в MS Access 2013 |
http://www.sql.ru/forum/1159057/ne-rabotaet-activex-listview-v-ms-access-2013
|
Ошибка object variable or with block variable not set (error 91) при загрузке Recordset |
Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset ' ïîäêëþ÷àåìÿ ê sql server Set cnn = New ADODB.Connection cnn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=OLAP_DWH_DEV;Data Source=wruistb008" cnn.Open rst.Open "SELECT * FROM [OLAP_DWH_DEV].[promo].[_PROMO_Events]", cnn, adOpenStatic, adLockOptimistic rst.Close cnn.Close
|
Управление MySQL из под Access. |
http://www.sql.ru/forum/1159026/upravlenie-mysql-iz-pod-access
|
Выполнение SQL запросов на стороне сервера. |
Модератор: Тема перенесена из форума "MySQL". |
http://www.sql.ru/forum/1159021/vypolnenie-sql-zaprosov-na-storone-servera
|
Наличие или отсутствие таблиц |
http://www.sql.ru/forum/1158957/nalichie-ili-otsutstvie-tablic
|
Размер базы. Как лучше хранить данные. |
+ |
![]() |
http://www.sql.ru/forum/1158881/razmer-bazy-kak-luchshe-hranit-dannye
|
Десятичные знаки при делении |
http://www.sql.ru/forum/1158859/desyatichnye-znaki-pri-delenii
|
Ошибка в запросе |
SELECT [СВК установка333].Наименование, [СВК установка333].[Дата выхода], [СВК установка333].Голограмма, [СВК установка333].Модель, [СВК установка333].[Номер аппарата], [СВК установка333].[Торг точка], [СВК установка333].Ответственный FROM [СВК установка333] WHERE (((Year([Дата выхода]))=2015) AND ((Month([Дата выхода]))=4)) ORDER BY [СВК установка333].Наименование;
Set dbs = CurrentDb() strSQL = "SELECT [СВК установка333].Наименование, [СВК установка333].[Дата выхода], [СВК установка333].Голограмма," _ & " [СВК установка333].Модель, [СВК установка333].[Номер аппарата], [СВК установка333].[Торг точка], [СВК установка333].Ответственный" _ & " FROM [СВК установка333] WHERE (((Year([Дата выхода])) = 2015) And ((Month([Дата выхода])) = 4))" _ & " ORDER BY [СВК установка333].Наименование" Set rs = dbs.OpenRecordset(strSQL, dbOpenDynaset, DB_CONSISTENT, dbPessimistic) kol = rs.RecordCount
|
Помогите, примитивный ЗАПРОС МЕЖДУ ДАТАМИ тормозит большую работу |
SELECT * FROM DB WHERE '" & data3 & "' <= Data AND Data <= '" & data4 & "'
Dim c As New OleDbCommand 'переменная "с" будет командой к выполнению c.Connection = conn c.CommandText = "SELECT * FROM DB WHERE '" & data3 & "' <= Data AND Data <= '" & data4 & "'" ' ORDER BY Data,Zveno,Pole,Diametr" 'выбрать все поля из таблицы DB внешней базы данных с выбранной датой" Dim ds As New DataSet Dim da As New OleDbDataAdapter(c) da.Fill(ds, "DB")
http://www.sql.ru/forum/1158810/pomogite-primitivnyy-zapros-mezhdu-datami-tormozit-bolshuu-rabotu
|
Запрос на выборку |
|
Web Browser - Некорректная работа, потеря фокуса объектом Yandex Maps |
Set WB = Me.wbMap.Object WB.navigate "about:blank" WB.Document.Write RS![HTML].Value WB.Refresh
http://www.sql.ru/forum/1158750/web-browser-nekorrektnaya-rabota-poterya-fokusa-obektom-yandex-maps
|
ADODB в подпрограмме |
|