powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перевести строку 1 строку с множеством значений в столбцец
38 сообщений из 38, показаны все 2 страниц
перевести строку 1 строку с множеством значений в столбцец
    #39119156
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день...подскажите как перевести строку в столбец без условий.
есть результат select
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119157
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119161
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо получить..извиняюсь..не совсем умею пользоваться формумом
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119181
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы, MS Access не знает про UNPIVOT.
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119188
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
может быть както в vba?
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119198
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VBA - запросто. Открываешь рекордсет, читаешь, создаёшь вторую таблицу, заполняешь.
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119201
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
не силен в vba. изучаю только 2ой день...может быть есть пример кода?заранее благодарен
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119465
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двумя запросами.

Запрос 1. Query1.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT Cod,1 AS M,[1] AS K FROM Table1
UNION ALL
SELECT Cod,2,[2] FROM Table1
UNION ALL
SELECT Cod,3,[3] FROM Table1
UNION ALL
SELECT Cod,4,[4] FROM Table1
UNION ALL
SELECT Cod,5,[5] FROM Table1
UNION ALL
SELECT Cod,6,[6] FROM Table1
UNION ALL
SELECT Cod,7,[7] FROM Table1
UNION ALL
SELECT Cod,8,[8] FROM Table1
UNION ALL
SELECT Cod,9,[9] FROM Table1;

Запрос 2.
Код: sql
1.
2.
3.
4.
5.
TRANSFORM First([K])
SELECT [M]
FROM Query1
GROUP BY [M]
PIVOT [Cod];
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119482
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleДвумя запросами.

Запрос 1. Query1.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT Cod,1 AS M,[1] AS K FROM Table1
UNION ALL
SELECT Cod,2,[2] FROM Table1
UNION ALL
SELECT Cod,3,[3] FROM Table1
UNION ALL
SELECT Cod,4,[4] FROM Table1
UNION ALL
SELECT Cod,5,[5] FROM Table1
UNION ALL
SELECT Cod,6,[6] FROM Table1
UNION ALL
SELECT Cod,7,[7] FROM Table1
UNION ALL
SELECT Cod,8,[8] FROM Table1
UNION ALL
SELECT Cod,9,[9] FROM Table1;

Запрос 2.
Код: sql
1.
2.
3.
4.
5.
TRANSFORM First([K])
SELECT [M]
FROM Query1
GROUP BY [M]
PIVOT [Cod];


а есби столбцов 240...все перечислить ???или как то без этого можно?
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119502
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,
обзывать поле кодом товара есть неправильно (а если товаров 500 наименований-сколько должно быть полей )
попробуйте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub my()
Dim rs As DAO.Recordset, rs1 As DAO.Recordset, i
DoCmd.RunSQL "create table tbl (id  counter primary key ,idTovar long, ctl1 text)" ' если таблица уже существует будет ошибка
'может лучше создать её разово вручную и удалить это строку (или обработать ошибку)
Set rs = CurrentDb.OpenRecordset("ИсходнаяТабл")
Set rs1 = CurrentDb.OpenRecordset("КонечнаяТабл")
Do Until rs.EOF
    For i = 1 To rs.Fields.Count - 1
        rs1.AddNew
         rs1!товар = rs!код
         rs1!ctl1 = rs.Fields(i)
        rs1.Update
    Next
rs.MoveNext
Loop
Set rs = Nothing
Set rs1 = Nothing
End Sub
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119507
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,

в аccess вы не сможете создать более 256 столбцов --это вам не excel 2007 с 16000 столбцами
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119513
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,

а union вообще меньше 50 (не помню точную цифру)
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119517
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.Sы КонечнаяТбл-"tbl"
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119534
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще: если ACCESS позднее 2003 не пишите Dim rs As DAO.Recordset, пишите без "DAO"-Dim rs As Recordset
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119535
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987все перечислить ???или как то без этого можно?VBA Вы не знаете...
С SQL проблемы...
Как же еще можно?
Эврика! По щучьему велению!
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119612
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,спасибо!!!Буду пробовать..а по поводу назвать поле "Код Товара"..это я неправильно принт сделал...
название поле будет любым...а в первой строчке будет код товар, а дальше как на принтскринет..
То есть задумка такова
1)взять код товара с формы(введется с поля со списком)
2)сделать выборку по коду и записать в таблицу....(то есть результат 1строчка только)
3)Перевернуть таблицу для использования данных и произведения расчетов..
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119638
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,
Про запросы в HELPe написано:
С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчетов.
про отчеты :
Отчет — это гибкое и эффективное средство для организации данных при выводе на печать. С помощью отчета имеется возможность вывести необходимые сведения в том виде , в котором требуется.

Создайте отчет и располагайте в нем поля хоть "лесенкой"
ну а если уж очень хочется рекомендованная процедура все выполнит
(rs1!товар = rs!код имеется ввиду rs1!idTovar=rs!код)
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119646
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987....
3)Перевернуть таблицу для использования данных и произведения расчетов .. так калькулятора,карандаша и бумажки достаточно-нахрена для этого ACCESS
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119661
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuЖеня1987....
3)Перевернуть таблицу для использования данных и произведения расчетов .. так калькулятора,карандаша и бумажки достаточно-нахрена для этого ACCESS

)))а калькуляция там жесткая...пару дней назад выкидывал формулы для расчета кофициента закупок...

Может подскажите столкнулся с проблемой переноса sql в vba
sql выполняктся а vba ругается ошбика 3067
код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Count_Click()
Const exp$ = "expbase"
Dim strSql As String
'CurrentDb.Execute "drop table " & exp$
strSql = "SELECT * into exp$" & vbCrLf & _
"FROM impbase " & vbCrLf & _
"(WHERE impbase.[Êîä òîâàðà]  = " & [Forms]![Form1]![VT]
CurrentDb.Execute strSql
End Sub
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119710
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем там VbCrlf?
А пробелы перед FROM и WHERE отсутствуют.
И exp$ раскрыть надо было.
Перед WHERE зачем скобка? Якобы разделитель такой?)))
Код: vbnet
1.
strSql = "SELECT * into " & exp$ & " FROM impbase WHERE impbase.[Êîä òîâàðà] = " & [Forms]![Form1]![VT]

К тому же, раз exp$ константа, можно ведь сразу записать
Код: vbnet
1.
strSql = "SELECT * into expbase FROM impbase WHERE impbase.[Êîä òîâàðà] = " & [Forms]![Form1]![VT]

Если [Forms]![Form1]![VT] текст, то
Код: vbnet
1.
strSql = "SELECT * into expbase FROM impbase WHERE impbase.[Êîä òîâàðà] = """ & [Forms]![Form1]![VT] & """"
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119718
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие-то значки безумные вылезли
Код: vbnet
1.
strSql = "SELECT * into " & exp$ & " FROM impbase WHERE impbase.<что-то> = " & [Forms]![Form1]![VT]

Код: vbnet
1.
strSql = "SELECT * into expbase FROM impbase WHERE impbase.<что-то> = " & [Forms]![Form1]![VT]

Код: vbnet
1.
strSql = "SELECT * into expbase FROM impbase WHERE impbase.<что-то> = """ & [Forms]![Form1]![VT] & """"
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119721
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
спасибо заработало)))
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119723
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАЖеня1987,

а union вообще меньше 50 (не помню точную цифру)Не меньше - 50 срабатывает.
И не цифру, а число.)))
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119800
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, по вашему коду создает таблицу tbl а после ошибку выдает 3078 "Не удается найти входную таблицу или запрос"ИсходнаяТабл""
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119853
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,
-Не обзывайте поля цифрой!!
-Нумерация с поля "а"
как-то так:
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119855
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987sdku, по вашему коду создает таблицу tbl а после ошибку выдает 3078 "Не удается найти входную таблицу или запрос"ИсходнаяТабл"""ИсходнаяТабл" это Ваша таблица (её имя)
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119881
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, с кодом по переворачиванию строки в столбец разобрался...
выложеный вами тест вроде тоже понял..

а вот выкладываю что наделал с использованием столцов с номером.....принципе осталось взять ваш код для расчетов и вывести в ексель....конечно наверно мое творение весьма весьма кривое
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119885
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, единтсвеное вашь код на переворот строки выводит 3 столца , во втором везде дублируется код товара...для меня лишний но я так понял он нужен для переворота...но принципе он и не мешает ничем)))Спасибо Огромное за помощь!!!!Может по моему коду подскажите что толковое
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39119889
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот что наваял
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120009
Зачем так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сложно
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120091
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сложно это вы вообще про всю форму или только про действие переворота...тк в примере вижу результат переворота....как раз то что надо...Спасибо...буду пробовать
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120138
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,

может вот так

Код: sql
1.
2.
3.
4.
5.
SELECT month.Код, expbase.[Код товара], month.Месяц,
 fan([Код], [Код товара]) As Значение
 FROM expbase, [Month]
 WHERE (((fan([Код], [Код товара])) > 0))
 ORDER BY expbase.[1], expbase.[2];


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private r As DAO.Recordset
Public Function fan(n&, nkey)
    If r Is Nothing Then
        Set r = CurrentDb.OpenRecordset("select * from expbase where [Код товара]=" & nkey)
    End If
    If n <= r.Fields.Count - 2 Then
        fan = r.Fields(n + 1).Value
    End If

r.Close
Set r = Nothing
End Function

Public Function start()
    DoCmd.OpenQuery "q"
End Function
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120185
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,не совсем то...выбрало все значения по строкам где не равно 0...а нужно именно чтоб по выбору кода выбрало все его столбци и перевернуло...чтото я прихожу в выводу что переворот строки не очень правильно...тк если нужно будет сделать по массиву
и кол-во кодов будет больше 250 ...я так понимаю перевернуть таблицу я не смогу тк всего можно сделать 250 столбцов....Возникает вопрос а как тогда в запросе использовать название столбца...чтото типо если столбцу x Is null то вернуться в предыдущий чтолбец...
образно if x is null go to x=x-1 и так далее.
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120230
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может мне стоит двигаться в сторону работы в масиве..типо загнать табл в масив и заполнять по формуле его....
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120390
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987может мне стоит двигаться в сторону работы в масиве..типо загнать табл в масив и заполнять по формуле его....

главная проблема --в екселе более 255 столбиков
значит не импорт, ни связь не годится

надо открывать ексель программно через excel.application и длинную таблицу в ассесс
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120457
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя1987,

и переводить в длинную таблицу в ассесс

как ---зависит от количества полезных ячеек в ексель

можно сразу и поля год-квартал-месяц добавить для упрощения дальнейших расчетов
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120489
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял все это есть какое-то прогнозирование.
Считаю, что в нашей стране, прогнозировать даже на 1 месяц это много (эта затея, кроме как в учебных целях, полная утопия)
...
Рейтинг: 0 / 0
перевести строку 1 строку с множеством значений в столбцец
    #39120585
Женя1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,не знаю от куда вы - но польностью с вами согласен.... У нас в Беларуси вообще полная Ж...
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перевести строку 1 строку с множеством значений в столбцец
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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