powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выборка с одного листа на другой
13 сообщений из 13, страница 1 из 1
Выборка с одного листа на другой
    #37711352
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пусть на листе2 есть некий исходный массив информации. Например, перечень выставленных счетов.
Необходимо на листе1 отображать некую выборку из листа2 согласно параметрам введенным пользователем.
Например, в начальном шаблоне задается что в ячейке D2 - начальная дата, а в D3 - конечная дата.
Хотелось бы в ячейке А5 прописать что-то вроде select * from [Лист2] where InvoiceDate<[Лист1].D3 and InvoiceDate>[Лист1].D2
И что бы автоматически при смене цифр в ячейках D2 и D3 весь вставляемый набор данных пересчитывался бы.

Возможно ли такое? Если да, то как?
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711354
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Студен15Возможно ли такое? Если да, то как?
Возможно. Формулами.
Будет пример - будет решение
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711427
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример во вложении
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711428
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вложился первый раз
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711495
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как должна выглядеть выборка?
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711537
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007 , а что, по селекту в первом посте не видно?
Вообще, ИМХО, можно действительно сделать запрос через ADO к листу таблицы, и пересчитывать выборку в Worksheet_Change() . Даже сам селект можно вынести отдельно в ячейку, и при необходимости - изменять его (поскольку ТС владеет SQL - это будет и более оптимальный вариант).
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711555
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM Serge 007 , а что, по селекту в первом посте не видно?
Вообще, ИМХО, можно действительно сделать запрос через ADO к листу таблицы, и пересчитывать выборку в Worksheet_Change() . Даже сам селект можно вынести отдельно в ячейку, и при необходимости - изменять его (поскольку ТС владеет SQL - это будет и более оптимальный вариант).

Именно так и хотелось бы.
Что вписать в формулу что бы вернулся набор данных?
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711624
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM Serge 007 , а что, по селекту в первом посте не видно?
К сожалению, я в SQL ни в зуб ногой :)
select * - это выбрать всё?
Тогда см. файл.

ЗЫ Формулы массива вводятся нажатием Ctrl+Shift+Enter
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37711905
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serge 007AndreTM Serge 007 , а что, по селекту в первом посте не видно?
К сожалению, я в SQL ни в зуб ногой :)
select * - это выбрать всё?
Тогда см. файл.

ЗЫ Формулы массива вводятся нажатием Ctrl+Shift+Enter

Эм... мне бы именно SQL со всеми примочками типа union, join, group by
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37712393
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Студен15Эм... мне бы именно SQL со всеми примочками типа union, join, group byТипа так?
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37712396
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, отправил несохраненный вариант...
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37712747
Студен15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMСтуден15Эм... мне бы именно SQL со всеми примочками типа union, join, group byТипа так?

Спасибо
То, что нужно
...
Рейтинг: 0 / 0
Выборка с одного листа на другой
    #37713019
_snark_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуй свои три копейки вставлю

Код: 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.
Function Test(sql As String) As Variant
' sql = Select t1.Name as name, t1.Number as n, t2.Cnt as cnt FROM [Лист1$] as t1 INNER JOIN [Лист2$] as t2 on t1.name = t2.name

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1

Debug.Print Application.ActiveWorkbook.FullName

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & Application.ActiveWorkbook.FullName & ";" & _
        "Extended Properties=""Excel 8.0;HDR=Yes;"";"

objRecordset.Open sql, _
    objConnection, adOpenStatic, adLockOptimistic, adCmdText

Dim vArray As Variant
ReDim vArray(1 To objRecordset.RecordCount, 1 To objRecordset.Fields.Count)

R = 1
Do Until objRecordset.EOF
    C = 1
    For Each f In objRecordset.Fields
        vArray(R, C) = f.Value
        C = C + 1
    Next
    R = R + 1
    objRecordset.MoveNext
Loop
Test = vArray
End Function



Ну и функцию вызывать очевидным образом, например, test("Select t1.Name as name, t1.Number as n, t2.Cnt as cnt FROM [Лист1$] as t1 INNER JOIN [Лист2$] as t2 on t1.name = t2.name") при этом вводить как функцию массива.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выборка с одного листа на другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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