powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна помощь
14 сообщений из 14, страница 1 из 1
Нужна помощь
    #33836043
Нужно передать данные из базы в excel. Почему-то передает только таблицу с 19 колонками. Это ограничение или как?
...
Рейтинг: 0 / 0
Нужна помощь
    #33836057
pavel73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это не ограничения Excel? какой офис?
...
Рейтинг: 0 / 0
Нужна помощь
    #33836182
pavel73А это не ограничения Excel? какой офис?

Microsoft Office XP
...
Рейтинг: 0 / 0
Нужна помощь
    #33836368
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за база, как передаете?
...
Рейтинг: 0 / 0
Нужна помощь
    #33836385
TaranagaА что за база, как передаете?

sql-запрос.
Могу код показать. Поможет?
...
Рейтинг: 0 / 0
Нужна помощь
    #33836597
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показывай код. Вообще-то там никаких явных ограничений нет.
...
Рейтинг: 0 / 0
Нужна помощь
    #33837567
Вот запрос

CREATE PROCEDURE dbo.[rep_Ведомость]
(
@objects varchar(8000), --выделенный объект в дереве
@params varchar(8000) = null
)
AS
BEGIN TRAN

IF(EXISTS(SELECT 1 FROM tempdb..sysobjects WHERE xtype = 'U' AND NAME LIKE '##asconm_spill_list'))
DROP TABLE ##asconm_spill_list

CREATE TABLE ##asconm_spill_list(Pos int identity(1, 1), OwnerPos int, Nesting int, MainId int, VerId int, TypeId int, LinkId int, LinkTypeId int, InversLink int, OwnerId int, MinQuantity int, iCalculation int)

DECLARE @MainId int, @VerId int, @TypeId int
SELECT @MainId = m.inId, @TypeId = m.inIdType, @VerId = v.inId
FROM stVersions v
INNER JOIN stMain m ON m.inId = v.inIdMain
WHERE v.inId = @objects

INSERT INTO ##asconm_spill_list(Nesting, MainId, VerId, TypeId, LinkId, LinkTypeId, OwnerId)
VALUES(0, @MainId, @VerId, @TypeId, null, null, null)

--сделать полную разузловку
EXEC pr_asconm_spill_object @objects, 'Сборочная единица = Состоит из .../Сборочная единица, Деталь, Материал по КД#Изготавливается по .../Маршрут#Используется/Материал дополнительный#; Деталь = Заготовка/Заготовка#Изготавливается по .../Маршрут#Изготавливается из .../Материал по КД, Материал дополнительный#Используется/Материал дополнительный#;'

--количество всего для каждого объекта
UPDATE ##asconm_spill_list
SET iCalculation = Calc
FROM ##asconm_spill_list asl
INNER JOIN (SELECT VerId, SUM(MinQuantity) as Calc FROM ##asconm_spill_list GROUP BY VerId) sel ON sel.VerId = asl.VerId

--выдать на гора
SELECT
--позиция в таблице
asl.Pos,
--позиция в таблице родителя
asl.OwnerPos,
--уровень вхождения
asl.Nesting,
--Обозначение
(select _PRODUCT from vwObjects where _ID = asl.VerId) as [Обозначение],
--наименование
(select value from rvwAttributes where idversion = asl.VerId and [name] = 'Наименование') as [Наименование],

-- и так далее раз 19

FROM ##asconm_spill_list asl

ROLLBACK TRAN
GO
...
Рейтинг: 0 / 0
Нужна помощь
    #33837572
а это из excelа

Sub ADO_DATA(Id_DSE As String)
Dim Connection As ADODB.Connection
Dim RecordSet As ADODB.RecordSet
Dim Col As Integer
Dim RecocdCount As Integer
Dim Cnct As String, Src As String
Dim DSE As String, Temp As String, Temp1 As String
Dim VTemp As Variant

'открыть соединение
Set Connection = New ADODB.Connection
'Cnct = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Вымпел_Графики;Data Source=Lab-sp"
Connection.Open ConnectionString:=ConnectStr

'создание объекта RecordSet
Set RecordSet = New ADODB.RecordSet

Src = "EXEC [rep_Ведомость] " + Id_DSE
RecordSet.Open Source:=Src, ActiveConnection:=Connection, CursorType:=adOpenDynamic, LockType:=adLockOptimistic
'дождаться данных
While RecordSet.State = 0
Set RecordSet = RecordSet.NextRecordset
Wend

'выдать содержимое на лист
Sheets("Data").Range("A1").Offset(0, 0).CopyFromRecordset RecordSet

Set RecordSet = Nothing
Connection.Close
Set Connection = Nothing

End Sub

Sub execute()

ConnectStr = Sheets("Data").Range("A1").Value
'Получение данных
ADO_DATA (Sheets("Data").Range("B1").Value)

work

End Sub
...
Рейтинг: 0 / 0
Нужна помощь
    #33838580
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На стороне Екселя - можно и попроще данные вытащить. Стандартными методами - куда как надежнее...
Создаем запрос или сводную таблицу на основании сформированной в СУБД таблицы или вьюхи (см. рис.), а затем заставляем его обновляться либо из макроса, либо, задав в свойствах ("обновляться при открытии" или "обновлять каждые...мин"...).
...
Рейтинг: 0 / 0
Нужна помощь
    #33847639
Дело в том, что мне не нужно создавать отчет. Мне нужно его просто немного переделать...У меня есть шаблон (Файл прилагается).
Почему-то если я создаю похожий файл с аналогичным именем и вставляю в него макрос, он выдает ошибку, связанную с ADODB.Connection
и еще вопрос откуда мог взяться этот идентификатор ADODB
...
Рейтинг: 0 / 0
Нужна помощь
    #33847706
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр1956Почему-то если я создаю похожий файл с аналогичным именем и вставляю в него макрос, он выдает ошибку, связанную с ADODB.Connection
и еще вопрос откуда мог взяться этот идентификатор ADODB
в VBA меню "Tools" - > "Referens"
надо поставить галку "Microsoft Activex Data Object 2.7 Library"
...
Рейтинг: 0 / 0
Нужна помощь
    #33847799
vkodor
Спасибо, заработало!
Только все равно в таблицу не переносит больше 19 столбцов.Из-за чего это может быть?
...
Рейтинг: 0 / 0
Нужна помощь
    #33847860
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр1956 vkodor
Спасибо, заработало!
Только все равно в таблицу не переносит больше 19 столбцов.Из-за чего это может быть?
точно незнаю но может быть дело в этом
Александр1956Вот запрос
...

--выдать на гора
SELECT
--позиция в таблице
asl.Pos,
--позиция в таблице родителя
asl.OwnerPos,
--уровень вхождения
asl.Nesting,
--Обозначение
(select _PRODUCT from vwObjects where _ID = asl.VerId) as [Обозначение],
--наименование
(select value from rvwAttributes where idversion = asl.VerId and [name] = 'Наименование') as [Наименование],

-- и так далее раз 19
FROM ##asconm_spill_list asl

ROLLBACK TRAN
GO

уж очень цифра похожая
...
Рейтинг: 0 / 0
Нужна помощь
    #33847887
vkodor
уж очень цифра похожая


а что в той цифре 19? я просто не стал запрос полностью писать.
факт в том, что из 30 столбцов в excel больше 19-20 не передаются
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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