powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом.
20 сообщений из 20, страница 1 из 1
помогите с запросом.
    #39660363
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал запрос.



Код: sql
1.
2.
SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",[ГофрацияДизайнов]![ДатаГофр],[ПечатьДизайнов]![ДатаПечати]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",[ГофрацияДизайнов]![Колво],[ПечатьДизайнов]![Колво]) AS Kolvo, ЗаявкиНаПечать.ГофрНеГофр
FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660364
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660366
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый форумчанам!

помогите с запросом. так хорошо данный предмет не знаю, чтобы решить проблему самому((

не знаю как сделать, чтобы строки у которых пустые поля Data, kolvo не отображались?
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660367
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoffСделал запрос.


Код: sql
1.
2.
SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",[ГофрацияДизайнов]![ДатаГофр],[ПечатьДизайнов]![ДатаПечати]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",[ГофрацияДизайнов]![Колво],[ПечатьДизайнов]![Колво]) AS Kolvo, ЗаявкиНаПечать.ГофрНеГофр
FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660369
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taranoffСделал запрос.
Код: sql
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.
SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать,
 IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",
[ГофрацияДизайнов]![ДатаГофр],
[ПечатьДизайнов]![ДатаПечати]) AS Data,
 Дизайны.КодДизайна,
 Дизайны.Дизайн,
 Клиенты.Клиент,
 Оболочка.Диаметр,
 Оболочка.Цвет,
IIf([ЗаявкиНаПечать]![ГофрНеГофр]="Да",
[ГофрацияДизайнов]![Колво],
[ПечатьДизайнов]![Колво]) AS Kolvo,
 ЗаявкиНаПечать.ГофрНеГофр

FROM Оболочка
 INNER JOIN ((((Дизайны
 INNER JOIN Клиенты
   ON Дизайны.КодКлиента = Клиенты.КодКлиента)
 INNER JOIN ЗаявкиНаПечать
   ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна))
 LEFT JOIN ГофрацияДизайнов
   ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать)
 INNER JOIN ПечатьДизайнов
   ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать)
 ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки



а в чем вопрос
--удвоение строк
--пропажа строк
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660377
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

у меня не получается фильтровать данные по датам, если там есть пустые строки.
вот фрагмент кода:

Код: 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.
Function view_lst_gofr_prn(Optional ByVal strSource As String)

Dim DateStr1 As String, DateStr2 As String, strTMP As String

Dim s1 As String
Dim s2 As String, s3 As String, s4 As String, s8 As String
Dim s6 As String, s7 As String, s5 As String, strSQL As String, str_sort As String
  
 If rs_gofr.State = 1 Then rs_gofr.Close

' Преобразование формата даты к буржуйскому для работы фильтра
DateStr1 = Format(txt_data_begin, "mm/dd/yy")
DateStr1 = Replace(DateStr1, ".", "/")
DateStr2 = Format(txt_data_end, "mm/dd/yy")
DateStr2 = Replace(DateStr2, ".", "/")
   
  If Nz(DatesAreBad, "") Then MsgBox ("Фильтрация по датам отключена. Проверьте корректность ввода дат!") Else _
    s5 = " AND ([Data]>=#" & DateStr1 & "# And [Data]<=#" & DateStr2 & "#)"

   s7 = " AND (Дизайны.Дизайн Like '%" & txt_findDesign & "%')"
   s8 = " AND (Дизайны.КодДизайна Like '%" & txt_findKodD & "%')"
    
   
    Select Case strSource
        Case "Requery"
            strSQL = lst_gofr_prn.Recordset.Source
        Case ""
            strTMP = "SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ЗаявкиНаПечать]![ГофрНеГофр]='Да',[ГофрацияДизайнов]![ДатаГофр], [ПечатьДизайнов]![ДатаПечати]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ЗаявкиНаПечать]![ГофрНеГофр]='Да',[ГофрацияДизайнов]![Колво],[ПечатьДизайнов]![Колво]) AS Kolvo, ЗаявкиНаПечать.ГофрНеГофр FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки"

        Case Else
            strSQL = lst_gofr_prn.Recordset.Source & strSource
     End Select
      If strSource <> "Requery" Then strSQL = strTMP & " WHERE true " & s7 & s8 & s5 
  

    rs_gofr.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
    Set lst_gofr_prn.Recordset = rs_gofr
  
           
End Function
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660383
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

спасибо Пенсионерка за быстрое желание помочь!

Вопрос снимается.
решил проблемку - в IIF начал искать по другому полю))
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660385
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

поторопился)))
одну проблему решил - информация отображается та что нужно.

но ... не получается по дате отфильтровать инфу(

как понимаю в это строке "загвоздка":


Код: vbnet
1.
s5 = " AND ([Data]>=#" & DateStr1 & "# And [Data]<=#" & DateStr2 & "#)"
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660388
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новая строка

Код: vbnet
1.
strTMP = "SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ГофрацияДизайнов]![Колво] Is Null,[ПечатьДизайнов]![Колво],[ГофрацияДизайнов]![Колво]) AS Kolvo, ЗаявкиНаПечать.ГофрНеГофр FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки"



taranoff,
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660389
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

пробовал так:

Код: vbnet
1.
s5 = " AND ((IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр]) AS Data)>=#" & DateStr1 & "# And (IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр]) AS Data)<=#" & DateStr2 & "#)"



тоже не работает(
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660392
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taranoff,

Код: vbnet
1.
2.
3.
Public Function GetDateSQL(ByVal dtm As Date) As String
  GetDateSQL = "#" & Format$(dtm, "mm\/dd\/yyyy hh:nn:ss") & "#"
End Function
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660395
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Извините, не пойму где это применить((
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660403
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taranoff, ф-ия GetDateSQL корректно форматирует Дату для использования в WHERE SQL запросов.

Код: vbnet
1.
s5 = " AND (IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])>=" & GetDateSQL(txt_data_begin) & " And IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])<=#" & GetDateSQL(txt_data_end) & ")"
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660425
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taranoff,
Как Вы пишите условие-так все прекрасно фильтруется: Поле Is Not Null
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660612
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
Function view_lst_gofr_prn(Optional ByVal strSource As String)

Dim DateStr1 As String, DateStr2 As String, strTMP As String
Dim s1 As String
Dim s2 As String, s3 As String, s4 As String, s8 As String
Dim s6 As String, s7 As String, s5 As String, strSQL As String, str_sort As String
Dim sum_kol As Long, i As Integer
  
 If rs_gofr.State = 1 Then rs_gofr.Close

' Преобразование формата даты к буржуйскому для работы фильтра
DateStr1 = Format(txt_data_begin, "mm/dd/yy")
DateStr1 = Replace(DateStr1, ".", "/")
DateStr2 = Format(txt_data_end, "mm/dd/yy")
DateStr2 = Replace(DateStr2, ".", "/")
   
  If Nz(DatesAreBad, "") Then MsgBox ("Фильтрация по датам отключена. Проверьте корректность ввода дат!") Else _
    s5 = " AND (IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])>=" & GetDateSQL(txt_data_begin) & " And IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])<=#" & GetDateSQL(txt_data_end) & ")"

   s7 = " AND (Дизайны.Дизайн Like '%" & txt_findDesign & "%')"
   s8 = " AND (Дизайны.КодДизайна Like '%" & txt_findKodD & "%')"
    
    Select Case strSource
        Case "Requery"
            strSQL = lst_gofr_prn.Recordset.Source
        Case ""
            strTMP = "SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ГофрацияДизайнов]![Колво] Is Null,[ПечатьДизайнов]![Колво],[ГофрацияДизайнов]![Колво]) AS Kolvo, IIf([ГофрацияДизайнов]![Колво] Is Null,'П','Г') AS GofrPrn FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки"
        Case Else
            strSQL = lst_gofr_prn.Recordset.Source & strSource
     End Select
      If strSource <> "Requery" Then strSQL = strTMP & " WHERE (Дизайны.СписаниеДизайна = False) " & s7 & s8 & s5   
  
   'MsgBox (strSQL)  

    rs_gofr.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
    Set lst_gofr_prn.Recordset = rs_gofr
  
    txt_count.Caption = "Показано строк: " & lst_gofr_prn.ListCount
            
End Function



немного переработал функцию, но все равно фильтр по датам не работает((
"что не так делают мои кривые ручёнки"?))
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660624
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

после долгих экспериментов заработало...)

с таким кодом:

Код: vbnet
1.
s5 = " AND ((IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])>=#" & DateStr1 & "# And IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр])<=#" & DateStr2 & "#))"



убрал AS DATA, и заработало))

п.с. век живи - век учись)

спасибо всем за помощь!
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660650
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

опять "рано закрыл тему"))
фильтрация работает, но "непонятки" с выводом информации.

вот что, пока, заметил:

1) из одной заявки дублирует строку из табл. "гофрация дизайна" столько раз, сколько есть строк в табл. "печать дизайнов"
2) из одной заявки показывает строку из табл. "печать дизайнов", только если нет строк в табл. "гофрация дизайна"

"нутром чую" что "бяка" здесь:

Код: sql
1.
SELECT ЗаявкиНаПечать.КодЗаявкиНаПечать, IIf([ГофрацияДизайнов]![ДатаГофр] Is Null,[ПечатьДизайнов]![ДатаПечати],[ГофрацияДизайнов]![ДатаГофр]) AS Data, Дизайны.КодДизайна, Дизайны.Дизайн, Клиенты.Клиент, Оболочка.Диаметр, Оболочка.Цвет, IIf([ГофрацияДизайнов]![Колво] Is Null,[ПечатьДизайнов]![Колво],[ГофрацияДизайнов]![Колво]) AS Kolvo, IIf([ГофрацияДизайнов]![Колво] Is Null,'П','Г') AS GofrPrn FROM Оболочка INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) AND (Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна)) LEFT JOIN ГофрацияДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ГофрацияДизайнов.КодЗаявкиНаПечать) INNER JOIN ПечатьДизайнов ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки



но не хватает знаний понять что не так((
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660659
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taranoff, я нутром чую, что вам надо потратить пару дней на изучение sql.
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660662
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверинtaranoff, я нутром чую, что вам надо потратить пару дней на изучение sql.

согласен)
этим занимаюсь, как есть время на учебу
но пока ...(((
...
Рейтинг: 0 / 0
помогите с запросом.
    #39660822
taranoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
taranoff,

Всем спасибо!
Тема окончательно закрывается.
Пошёл учить "матчасть")
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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