powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
18 сообщений из 18, страница 1 из 1
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361710
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я выгружаю из БД Столбец и мне надо поставить на него фильтр значения которого надо брать тоже из-базы.
Как это сделать? Я так понимаю надо использовать vba? в общих чертах хотя бы подскажите как это, а то мои знания vba весьма скудны.
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361717
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сводные таблицы не подойдут из-за остальной части задания
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361741
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,
Ну мне кажется что нужно будет создать форму в которой будет задаваться критерий для запроса. А после введения критерия в форму, нажимать кнопку которая будет запускать запрос. А в запросе будет переменная с условием для запроса из формы. в итоге вы будете получать только те данные которые будут соответствовать условию заданному в начале.
Ну как-то так.. наверное. )
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361798
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, не точно сформулировал задание, у меня связанные два столбца один я отображаю в excel в качестве данных, а второй отоброжаю в качестве фильтра. Вот как мен такой фильр сделать?
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361839
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,
ну а как насчет сводной?
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361855
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0и сводные таблицы не подойдут из-за остальной части задания
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361856
Che0,
- первым запросом получаете данные для фильтра;
- используя записи, возвращённые первым запросом, формируете второй запрос - на получение данных;
- вторым запросом получаете данные.
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37361999
wf_to_bo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
давайте пример данных и того, что надо получить.
написать запрос с подзапросом, не?
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362035
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да sql все просто но мне надо то это в экселе отоброзить

ну пускай так
Код: plaintext
Select Collumn1,collumn2 from Table1
collumn1 должен отображаться в экселе колонкой, collumn2 фильтром над collumn1


1)подключиться к базе
2)выполнить запрос
3)присвоить значения результату запроса
4)заполнить колонку содержимым collumn1
5) поставить фильтр c содержимым collumn2

все это относительно просто но я vba 2 часа назад увидел, поэтому если вам не сложно тезисама по пунктам что да как, может ссылки по теме.... помогите вообщем, так как горю!!!!!
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362051
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и больше всего меня волнует фильтр, хотя остальное я тоже пока не представляю как
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362092
Мне тоже интересно, как это реализуется. Я думал, что автофильтр в Экселе - это SELECT DISTINCT ...
PS может 2 комбобокса должно быть? По изменению значения 1-го во 2-м изменения?
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362094
комплектовщик,
есть ещё расширенный фильтр - в качестве условий выступают значения спец.образом заполненного диапазона.

ЗЫ: Тема сисек необходимости фильтра в данном конкретном случае не раскрыта.
ЗЗЫ: судя по Che0ну пускай так

Код: plaintext
Select Collumn1,collumn2 from Table1

collumn1 должен отображаться в экселе колонкой, collumn2 фильтром над collumn1ТС себе слабо представляет что и где у него хранится
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362108
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
представляю я все четко, но зачем тут детали
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362133
Che0,
без деталей:
Код: plaintext
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.
Option Explicit

Sub filterfromdb()
Const S_DB$ = "Database"
Const S_FLT$ = "Criteria"

Dim cn As Object
Dim rs As Object
Dim s$

Set cn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

s = "строка подключения к базе данных"

cn.Open s
rs.activeconnection = cn
rs.Open "Select Collumn1 from Table1"

With ThisWorkbook
With .Worksheets( 1 )
    .Cells.Clear
    .Cells( 1 ,  1 ).Value2 = rs( 0 ).Name
    .Cells( 2 ,  1 ).CopyFromRecordset rs
    Names.Add S_DB, "=" & .Name & "!" & .UsedRange.Address
End With

With .Worksheets( 2 )
    .Cells.Clear
    .Cells( 1 ,  1 ).Value2 = rs( 0 ).Name
    rs.Close
    rs.Open "Select Collumn2 from Table1"
    .Cells( 2 ,  1 ).CopyFromRecordset rs
    rs.Close
    Names.Add S_FLT, "=" & .Name & "!" & .UsedRange.Address
End With
End With
    
Set rs = Nothing
cn.Close: Set cn = Nothing
    
Range(S_DB).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(S_FLT)
    
End Sub

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

Код: plaintext
Names.Add S_DB, "=" & .Name & "!" & .UsedRange.Address

Код: plaintext
 Names.Add S_FLT, "=" & .Name & "!" & .UsedRange.Address


Код: plaintext
Range(S_DB).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(S_FLT)
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362784
Che0,
первые две сточки )))
добавляют в книгу имнованные диапазоны

третья - фильтрует "первый" именованый диапазон, используя "второй" именованый диапазон в качестве фильтра
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37362896
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнем, твой код отвечает на многие мои вопросы "как и че делать?" (спасибо!!) но это не то.

я уже немного ориентируюсь и поэтому счас обьясню точно что и как мне надо.
1)при открытии файла экселя должно произойти подключение к БД и считаться от туда значения фильтра (select type_data from table_filter)
2) эти значения должны поместиться на экселевский лист в виде выпадающего списка(список как вариант), что бы пользователь мог удобно выбирать
3) в соответствии с выбранными значениями, должно отоброжаться данные из БД в экселевскую колонку

и что бы при каждом ображении к нашему фильтру (пункт2), данные переформировывались!!!!!!!!

и связь фильтра и даных такого типа
Код: plaintext
Select Name from table_data where type_data in "данные из фильтра"
...
Рейтинг: 0 / 0
прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
    #37363927
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот решение моей задачи:
Код: plaintext
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.
Private Sub Workbook_Open()


Dim cn As Object
Dim rs As Object

Set cn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
cn.Provider = "SQLOLEDB"
cn.ConnectionString = "User ID=Sa;Password=******;Data Source=Che;Initial Catalog=Asteros_App"

cn.Open
rs.activeconnection = cn
rs.Open "SELECT  Name  FROM Asteros_App.dbo.[D_Отраслевой департамент]"

With ThisWorkbook
With .Worksheets( 4 )
    
    .Cells( 1 ,  1 ).CopyFromRecordset rs
  
   
End With

End With
    
Set rs = Nothing
cn.Close: Set cn = Nothing
Application.Run "ЭтаКнига.data_in"
End Sub
Sub data_in()
Dim cn As Object
Dim rs As Object

Set cn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
cn.Provider = "SQLOLEDB"
cn.ConnectionString = "User ID=Sa;Password=*****;Data Source=Che-Pc;Initial Catalog=Asteros_App"

cn.Open
rs.activeconnection = cn


 rs.Open "SELECT  Asteros_App.dbo.D_Project.Name,Asteros_App.dbo.D_Клиент.Name" _
 & " FROM Asteros_App.dbo.D_Project inner join Asteros_App.dbo.[D_Клиент] on" _
 & " Asteros_App.dbo.D_Project.[Клиент]= Asteros_App.dbo.D_Клиент.MemberId" _
 & " where D_Project.[Отраслевой департамент] in " _
 & "(select MemberId from Asteros_App.dbo.[D_Отраслевой департамент] where Name =N'" + ThisWorkbook.Worksheets( 2 ).Range("C1") + "' )"

 
  
With ThisWorkbook
With .Worksheets( 2 )


    .Range("C3:D1000").Clear
    .Cells( 3 ,  3 ).CopyFromRecordset rs
  
   
End With

End With
    
Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Row =  1  And Target.Column =  3  Then
       ' Application.Run "ЭтаКнига.data_in"
        Call ЭтаКнига.data_in
        
       ' MsgBox ("dfsfdsd")
     End If
End Sub
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / прочитать данные из sql и выгрузить их в excel взависимости от значений фильтров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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