Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Фильтр импортированных данных из .MDF в таблице Excel 2003 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Фильтр импортированных данных из .MDF в таблице Excel 2003
bygaga Дата: Четверг, 23.02.2012, 16:04 | Сообщение № 1
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Здравствуйте!
У меня получилось импортировать внешние данные из БД.mdf, вопшем через сводную таблицу отфильтровал (выбрал) нужные мне столбцы... Но теперь нужно со сводной таблицы отфильтровать данные в нужную мне сформированную таблицу, вобщем, поставить условия на формулу ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ()... Думал сначала получится включить в "ЕСЛИ ()" функцию "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ()", но наверное будет много лишних пустых полей в сформированной таблице, и то если получится это сделать...

Вопрос в том как отфильтровать данные из сводной таблицы в нужную мне табл.: 1) в один столбец - по цене при условии если цена = "Х"? ; 2) в другой столб. - по дате "ОТ" - если дата попадает а промежуток от "Y" до "Z" ; 3) по дате "ДО" если дата входит в промежуток от "Y" до "Z".
При этом X - это константа для каждой страницы;
от "Y" до "Z" это 1 месяц (например, от "01.01.2012" до "31.01.2012" по календарю компьютера)
Вопщем, все это лучше увидеть на примере...
К сообщению приложен файл: TEST-3.rar (20.9 Kb)
 
Ответить
СообщениеЗдравствуйте!
У меня получилось импортировать внешние данные из БД.mdf, вопшем через сводную таблицу отфильтровал (выбрал) нужные мне столбцы... Но теперь нужно со сводной таблицы отфильтровать данные в нужную мне сформированную таблицу, вобщем, поставить условия на формулу ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ()... Думал сначала получится включить в "ЕСЛИ ()" функцию "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ()", но наверное будет много лишних пустых полей в сформированной таблице, и то если получится это сделать...

Вопрос в том как отфильтровать данные из сводной таблицы в нужную мне табл.: 1) в один столбец - по цене при условии если цена = "Х"? ; 2) в другой столб. - по дате "ОТ" - если дата попадает а промежуток от "Y" до "Z" ; 3) по дате "ДО" если дата входит в промежуток от "Y" до "Z".
При этом X - это константа для каждой страницы;
от "Y" до "Z" это 1 месяц (например, от "01.01.2012" до "31.01.2012" по календарю компьютера)
Вопщем, все это лучше увидеть на примере...

Автор - bygaga
Дата добавления - 23.02.2012 в 16:04
Формуляр Дата: Пятница, 24.02.2012, 12:06 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Приветствую!
Может бытть лучше и фильтр и сводную сразу в SQL впихнуть?
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеПриветствую!
Может бытть лучше и фильтр и сводную сразу в SQL впихнуть?
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.

Автор - Формуляр
Дата добавления - 24.02.2012 в 12:06
Формуляр Дата: Воскресенье, 26.02.2012, 21:42 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Вариант решения через внутренний SQL-запрос.
К сообщению приложен файл: TEST_3_1.zip (37.0 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеВариант решения через внутренний SQL-запрос.

Автор - Формуляр
Дата добавления - 26.02.2012 в 21:42
bygaga Дата: Вторник, 19.06.2012, 11:53 | Сообщение № 4
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Формуляр, спасибо большое за пример! Простите пожалуйста что не ответил сразу.
Просто не смог сам разобраться что и как в этом макросе менять...
Во-первых, хотелось-бы уточнить:
Quote (Формуляр)
внутренний SQL-запрос.
- я так понимаю это подзапрос который должен управляться внешним (основным) запросом к серверу, где и находиться файл.MDF? эт я нагуглил smile
если да, то как осуществить основной запрос и интегрировать в него внутренний, можно пример?


Сообщение отредактировал bygaga - Вторник, 19.06.2012, 12:03
 
Ответить
СообщениеФормуляр, спасибо большое за пример! Простите пожалуйста что не ответил сразу.
Просто не смог сам разобраться что и как в этом макросе менять...
Во-первых, хотелось-бы уточнить:
Quote (Формуляр)
внутренний SQL-запрос.
- я так понимаю это подзапрос который должен управляться внешним (основным) запросом к серверу, где и находиться файл.MDF? эт я нагуглил smile
если да, то как осуществить основной запрос и интегрировать в него внутренний, можно пример?

Автор - bygaga
Дата добавления - 19.06.2012 в 11:53
Формуляр Дата: Среда, 20.06.2012, 22:57 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (bygaga)
внутренний SQL-запрос. - я так понимаю это подзапрос который должен управляться внешним
"Внутренний" - в том смысле, что к своему собственному файлу. А так - обычный запрос.
Только нужно закомментировать везде вызов UpdateAutoConnectionQry() , которая перенаправляет источник на свой собственный файл.

с MDF-ами я, честно говоря, ни разу не работал. Обращался только к готовым запросам в Access.
Но принцип, думаю, общий: кнопкой Редактировать запрос открываете форму и в поле Data source прописываете все нужные параметры своего MDF.

Quote (Формуляр)
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.

Quote (bygaga)
можно пример?
Я первый спросил. smile


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (bygaga)
внутренний SQL-запрос. - я так понимаю это подзапрос который должен управляться внешним
"Внутренний" - в том смысле, что к своему собственному файлу. А так - обычный запрос.
Только нужно закомментировать везде вызов UpdateAutoConnectionQry() , которая перенаправляет источник на свой собственный файл.

с MDF-ами я, честно говоря, ни разу не работал. Обращался только к готовым запросам в Access.
Но принцип, думаю, общий: кнопкой Редактировать запрос открываете форму и в поле Data source прописываете все нужные параметры своего MDF.

Quote (Формуляр)
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.

Quote (bygaga)
можно пример?
Я первый спросил. smile

Автор - Формуляр
Дата добавления - 20.06.2012 в 22:57
bygaga Дата: Пятница, 22.06.2012, 13:41 | Сообщение № 6
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Quote (Формуляр)
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.

хорошо, но как мне урезать/изменить данные таблиц *.MDF, чтоб так много не весил?
Или, если возможно, как через Эксель -> "Импорт данных" из сохранённого запроса создать файл MDF такой же структуры как исходник?


Сообщение отредактировал bygaga - Пятница, 22.06.2012, 13:46
 
Ответить
Сообщение
Quote (Формуляр)
Покажите ка образец исхдного MDFа. И заодно сам SQL-запрос.

хорошо, но как мне урезать/изменить данные таблиц *.MDF, чтоб так много не весил?
Или, если возможно, как через Эксель -> "Импорт данных" из сохранённого запроса создать файл MDF такой же структуры как исходник?

Автор - bygaga
Дата добавления - 22.06.2012 в 13:41
bygaga Дата: Вторник, 31.07.2012, 13:45 | Сообщение № 7
Группа: Гости
Помогите кто-нибудь - забыл свой пароль а емейл пишет что не подтвержден...
 
Ответить
СообщениеПомогите кто-нибудь - забыл свой пароль а емейл пишет что не подтвержден...

Автор - bygaga
Дата добавления - 31.07.2012 в 13:45
Serge_007 Дата: Вторник, 31.07.2012, 14:23 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Изменил Ваш пароль. Теперь он аналогичен нику. Как зайдёте - поменяйте на удобный Вам. И больше не забывайте smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеИзменил Ваш пароль. Теперь он аналогичен нику. Как зайдёте - поменяйте на удобный Вам. И больше не забывайте smile

Автор - Serge_007
Дата добавления - 31.07.2012 в 14:23
bygaga Дата: Вторник, 31.07.2012, 17:20 | Сообщение № 9
Группа: Гости
Спасибо Серж!
 
Ответить
СообщениеСпасибо Серж!

Автор - bygaga
Дата добавления - 31.07.2012 в 17:20
bygaga Дата: Среда, 27.02.2013, 15:31 | Сообщение № 10
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Извините, долго не отвечал.
Вопрос почти решен - макрорекордером записал запрос и повесил на кнопку. Вот код VBA

[vba]
Код
Private Sub CommandButton2_Click()
' Запрос1_mdf (Excel 2003)
          Dim [b]d[/b] As Date
          Dim [b]d2[/b] As Date

          If Range("B4") <> "" Then
          Columns("B:E").Select
          Selection.ClearContents
          End If
          'ввожу переменные для выбора периода в Excel
          d = Range("R1")
          d2 = Range("R2")
                
          'Запрос в БД записан макрорекордером
          Range("B4").Select
             With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
              "ODBC;DRIVER=SQL Server;SERVER=server;UID=admin;APP=Microsoft Office 2003;WSID=DIMAMELN;DATABASE=Reestr_Lavanda;Trusted_Connection=Ye" _
              ), Array("s")), Destination:=Range("B4"))
              .CommandText = Array( _
              "SELECT PUTIVKA.Suma, PUTIVKA.NUMBER, PUTIVKA.FROM_D, PUTIVKA.To_D" & Chr(13) & "" & Chr(10) & "FROM Reestr_Lavanda.dbo.PUTIVKA PUTIVKA" & Chr(13) & "" & Chr(10) & "WHERE (PUTIVKA.FROM_D>={ts 'd'} And PUTIVKA.FROM_D<={ts 'd2:" _
              , "00'})" & Chr(13) & "" & Chr(10) & "ORDER BY PUTIVKA.Suma, PUTIVKA.NUMBER")
              .Name = "reestr"
              .FieldNames = True
              .RowNumbers = False
              .FillAdjacentFormulas = False
              .PreserveFormatting = True
              .RefreshOnFileOpen = False
              .BackgroundQuery = True
              .RefreshStyle = xlInsertDeleteCells
              .SavePassword = False
              .SaveData = True
              .AdjustColumnWidth = True
              .RefreshPeriod = 0
              .PreserveColumnInfo = True
              .Refresh BackgroundQuery:=False
                    
          End With
          Columns("D:E").Select
          Selection.NumberFormat = "dd.mm.yy;@"
          Selection.ColumnWidth = 8
          End Sub
[/vba]

Баг появляется в этой желтой строке [vba]
Код
.Refresh BackgroundQuery:=False
[/vba] после моих корректирований, а точнее - добавил:
[vba]
Код
    Dim [b]d[/b] As Date
          Dim [b]d2[/b] As Date
[/vba]
и вместо даты в запросе "WHERE (PUTIVKA.FROM_D>={ts '2013-02-01 00:00:00'} And PUTIVKA.FROM_D<={ts '2013-02-28 00:00:00:" _ подставил d и d2
которые ссилаются на ячейки:
d = Range("R1")
d2 = Range("R2")
форматы ячеек изменил на yyyy-mm-dd" "hh:mm:ss

Вопрос: Как, используя данный макрос, сделать рабочим макрос вот этого файла TEST_3_1.zip


Сообщение отредактировал bygaga - Среда, 27.02.2013, 17:00
 
Ответить
СообщениеИзвините, долго не отвечал.
Вопрос почти решен - макрорекордером записал запрос и повесил на кнопку. Вот код VBA

[vba]
Код
Private Sub CommandButton2_Click()
' Запрос1_mdf (Excel 2003)
          Dim [b]d[/b] As Date
          Dim [b]d2[/b] As Date

          If Range("B4") <> "" Then
          Columns("B:E").Select
          Selection.ClearContents
          End If
          'ввожу переменные для выбора периода в Excel
          d = Range("R1")
          d2 = Range("R2")
                
          'Запрос в БД записан макрорекордером
          Range("B4").Select
             With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
              "ODBC;DRIVER=SQL Server;SERVER=server;UID=admin;APP=Microsoft Office 2003;WSID=DIMAMELN;DATABASE=Reestr_Lavanda;Trusted_Connection=Ye" _
              ), Array("s")), Destination:=Range("B4"))
              .CommandText = Array( _
              "SELECT PUTIVKA.Suma, PUTIVKA.NUMBER, PUTIVKA.FROM_D, PUTIVKA.To_D" & Chr(13) & "" & Chr(10) & "FROM Reestr_Lavanda.dbo.PUTIVKA PUTIVKA" & Chr(13) & "" & Chr(10) & "WHERE (PUTIVKA.FROM_D>={ts 'd'} And PUTIVKA.FROM_D<={ts 'd2:" _
              , "00'})" & Chr(13) & "" & Chr(10) & "ORDER BY PUTIVKA.Suma, PUTIVKA.NUMBER")
              .Name = "reestr"
              .FieldNames = True
              .RowNumbers = False
              .FillAdjacentFormulas = False
              .PreserveFormatting = True
              .RefreshOnFileOpen = False
              .BackgroundQuery = True
              .RefreshStyle = xlInsertDeleteCells
              .SavePassword = False
              .SaveData = True
              .AdjustColumnWidth = True
              .RefreshPeriod = 0
              .PreserveColumnInfo = True
              .Refresh BackgroundQuery:=False
                    
          End With
          Columns("D:E").Select
          Selection.NumberFormat = "dd.mm.yy;@"
          Selection.ColumnWidth = 8
          End Sub
[/vba]

Баг появляется в этой желтой строке [vba]
Код
.Refresh BackgroundQuery:=False
[/vba] после моих корректирований, а точнее - добавил:
[vba]
Код
    Dim [b]d[/b] As Date
          Dim [b]d2[/b] As Date
[/vba]
и вместо даты в запросе "WHERE (PUTIVKA.FROM_D>={ts '2013-02-01 00:00:00'} And PUTIVKA.FROM_D<={ts '2013-02-28 00:00:00:" _ подставил d и d2
которые ссилаются на ячейки:
d = Range("R1")
d2 = Range("R2")
форматы ячеек изменил на yyyy-mm-dd" "hh:mm:ss

Вопрос: Как, используя данный макрос, сделать рабочим макрос вот этого файла TEST_3_1.zip

Автор - bygaga
Дата добавления - 27.02.2013 в 15:31
bygaga Дата: Среда, 27.02.2013, 15:52 | Сообщение № 11
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
...и еще вопрос по автофильтру, записан макрорекордером:

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      Selection.AutoFilter Field:=2, Criteria1:= Range"A4"
     End If
End sub
[/vba]

перестал работать. Строка Selection.AutoFilter Field:=2, Criteria1:= Range"A4" жёлтая
Как сделать макрос рабочим?
 
Ответить
Сообщение...и еще вопрос по автофильтру, записан макрорекордером:

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      Selection.AutoFilter Field:=2, Criteria1:= Range"A4"
     End If
End sub
[/vba]

перестал работать. Строка Selection.AutoFilter Field:=2, Criteria1:= Range"A4" жёлтая
Как сделать макрос рабочим?

Автор - bygaga
Дата добавления - 27.02.2013 в 15:52
RAN Дата: Среда, 27.02.2013, 15:59 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Называется: "Найди два отличия"
[vba]
Код
Range"A4"
[/vba]

[vba]
Код
Range("A4")
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНазывается: "Найди два отличия"
[vba]
Код
Range"A4"
[/vba]

[vba]
Код
Range("A4")
[/vba]

Автор - RAN
Дата добавления - 27.02.2013 в 15:59
bygaga Дата: Среда, 27.02.2013, 16:41 | Сообщение № 13
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
спасибо, теперь уже все работает


Сообщение отредактировал bygaga - Среда, 27.02.2013, 16:51
 
Ответить
Сообщениеспасибо, теперь уже все работает

Автор - bygaga
Дата добавления - 27.02.2013 в 16:41
RAN Дата: Среда, 27.02.2013, 16:51 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Какого?

bygaga, после правки предыдущего поста хорошо ответ смотрится! biggrin


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 27.02.2013, 16:59
 
Ответить
СообщениеКакого?

bygaga, после правки предыдущего поста хорошо ответ смотрится! biggrin

Автор - RAN
Дата добавления - 27.02.2013 в 16:51
bygaga Дата: Среда, 27.02.2013, 16:56 | Сообщение № 15
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
извиняюсь, с кавычками я это нечаянно) не увидел
 
Ответить
Сообщениеизвиняюсь, с кавычками я это нечаянно) не увидел

Автор - bygaga
Дата добавления - 27.02.2013 в 16:56
bygaga Дата: Среда, 27.02.2013, 17:02 | Сообщение № 16
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Цитата (bygaga)
bygaga, после правки предыдущего поста хорошо ответ смотрится!

гггг biggrin biggrin виноват....
 
Ответить
Сообщение
Цитата (bygaga)
bygaga, после правки предыдущего поста хорошо ответ смотрится!

гггг biggrin biggrin виноват....

Автор - bygaga
Дата добавления - 27.02.2013 в 17:02
bygaga Дата: Среда, 27.02.2013, 17:36 | Сообщение № 17
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
RAN, а если в строке поставить All чтобы видеть все данные то макрос не работает (Selection.AutoFilter Field:=2, Criteria1:= all)
...а понял, надо просто написать Selection.AutoFilter Field:=2


Сообщение отредактировал bygaga - Среда, 27.02.2013, 17:43
 
Ответить
СообщениеRAN, а если в строке поставить All чтобы видеть все данные то макрос не работает (Selection.AutoFilter Field:=2, Criteria1:= all)
...а понял, надо просто написать Selection.AutoFilter Field:=2

Автор - bygaga
Дата добавления - 27.02.2013 в 17:36
bygaga Дата: Четверг, 28.02.2013, 14:53 | Сообщение № 18
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Ей, люди, отзовитесь кто-нибудь
Как же осуществить возможность менять параметры выборки в ячейках Экселя, а не меняя текст запроса в даном выше коде?
То есть как внести работающие переменные в код запроса, которые будут ссылатся на ячейки?
Например, в нашем коде написано ...& "WHERE (PUTIVKA.FROM_D>={ts '2013-02-01 00:00:00'
В ячейку D1 ми поставили 15.03.2013 , то код поменялся: ...& "WHERE (PUTIVKA.FROM_D>={ts '2013-03-15 00:00:00'


Сообщение отредактировал bygaga - Четверг, 28.02.2013, 15:06
 
Ответить
СообщениеЕй, люди, отзовитесь кто-нибудь
Как же осуществить возможность менять параметры выборки в ячейках Экселя, а не меняя текст запроса в даном выше коде?
То есть как внести работающие переменные в код запроса, которые будут ссылатся на ячейки?
Например, в нашем коде написано ...& "WHERE (PUTIVKA.FROM_D>={ts '2013-02-01 00:00:00'
В ячейку D1 ми поставили 15.03.2013 , то код поменялся: ...& "WHERE (PUTIVKA.FROM_D>={ts '2013-03-15 00:00:00'

Автор - bygaga
Дата добавления - 28.02.2013 в 14:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!