Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна помощь / 14 сообщений из 14, страница 1 из 1
06.07.2006, 15:49:23
    #33836043
Нужна помощь
Нужно передать данные из базы в excel. Почему-то передает только таблицу с 19 колонками. Это ограничение или как?
...
Рейтинг: 0 / 0
06.07.2006, 15:51:19
    #33836057
pavel73
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь
А это не ограничения Excel? какой офис?
...
Рейтинг: 0 / 0
06.07.2006, 16:14:19
    #33836182
Нужна помощь
pavel73А это не ограничения Excel? какой офис?

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

sql-запрос.
Могу код показать. Поможет?
...
Рейтинг: 0 / 0
06.07.2006, 18:06:16
    #33836597
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь
Показывай код. Вообще-то там никаких явных ограничений нет.
...
Рейтинг: 0 / 0
07.07.2006, 10:49:27
    #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
07.07.2006, 10:50:54
    #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
07.07.2006, 14:45:35
    #33838580
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь
На стороне Екселя - можно и попроще данные вытащить. Стандартными методами - куда как надежнее...
Создаем запрос или сводную таблицу на основании сформированной в СУБД таблицы или вьюхи (см. рис.), а затем заставляем его обновляться либо из макроса, либо, задав в свойствах ("обновляться при открытии" или "обновлять каждые...мин"...).
...
Рейтинг: 0 / 0
12.07.2006, 12:44:38
    #33847639
Нужна помощь
Дело в том, что мне не нужно создавать отчет. Мне нужно его просто немного переделать...У меня есть шаблон (Файл прилагается).
Почему-то если я создаю похожий файл с аналогичным именем и вставляю в него макрос, он выдает ошибку, связанную с ADODB.Connection
и еще вопрос откуда мог взяться этот идентификатор ADODB
...
Рейтинг: 0 / 0
12.07.2006, 13:01:05
    #33847706
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь
Александр1956Почему-то если я создаю похожий файл с аналогичным именем и вставляю в него макрос, он выдает ошибку, связанную с ADODB.Connection
и еще вопрос откуда мог взяться этот идентификатор ADODB
в VBA меню "Tools" - > "Referens"
надо поставить галку "Microsoft Activex Data Object 2.7 Library"
...
Рейтинг: 0 / 0
12.07.2006, 13:22:22
    #33847799
Нужна помощь
vkodor
Спасибо, заработало!
Только все равно в таблицу не переносит больше 19 столбцов.Из-за чего это может быть?
...
Рейтинг: 0 / 0
12.07.2006, 13:34:24
    #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
12.07.2006, 13:39:46
    #33847887
Нужна помощь
vkodor
уж очень цифра похожая


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


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