powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6+Excel+Access
15 сообщений из 15, страница 1 из 1
VB6+Excel+Access
    #33160829
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен пример как достать Shape из Excel
и потом сохранить его в БД Access
соответственно чтобы потом можно было достать и вставить в Excel обратно
Как достать я знаю WorkSheet.Sapes(1)
а вот как его сохранить?
Желательно без Clipboard, или так невозможно?
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161465
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну может кто скажет как этот Excel.Shape привести к другому типу,
может через Stream чтобы запихнуть в базу.
Я всю жизнь на Делфе ваял и горя не знал, тут понадобылись на ВБ вот затыка
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161630
lmeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может не очень красиво, но я бы взял все нужные параметры shape и записал их в базу в текстовом виде.
а потом доставал, вручную создавал шейп и присваивал ему параметры.

(это конечно, если целиком с объектом работать не получится)
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161644
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык мне нужно изображение, картинка...
Сохранить, потом вывести..
вроде простой вопрос, задавал на форумах ответов нет...
Одно из двух либо ВБ уже забыли, либо он действительно убогий
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161761
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, на ВБ сделать это просто, но зачем делать это на убогом ВБ, ваяй на Делфе dll-ку, подключай её к ВБ и вперед!
------------------
arbeit macht frei
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161773
lmeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотри объектные модели excel и access
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAXL10.CHM
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAAC10.CHM

в экселе шейп есть, а в акцессе - нет
поэтому я думаю, что акцесс его в свою базу записать не сможет.
(может я и ошибаюсь... помогаю, чем могу)
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161775
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_bobтак, на ВБ сделать это просто, но зачем делать это на убогом ВБ, ваяй на Делфе dll-ку, подключай её к ВБ и вперед!
------------------
arbeit macht frei

Просто но как???
Зачем сложности писать длл подключать....
Если это невозможно без длл тогда конечно...

В нете я ответ не нашел...
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161785
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lmeerпосмотри объектные модели excel и access
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAXL10.CHM
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAAC10.CHM

в экселе шейп есть, а в акцессе - нет
поэтому я думаю, что акцесс его в свою базу записать не сможет.
(может я и ошибаюсь... помогаю, чем могу)

Я тоже так думаю...
У Access есть OLE объект...
Вопрос как преобразовать Shape в Ole

я выдергиваю из Excela Shape в Ole посредством Copy Paste
я так понимаю это единственное решение

Теперь осталось положить этот Ole в базу...
сейчас парюсь....

На делфе я бы сделал так, запихнул Shape->Stream->БД
без всяких Clipboard

Вот как такое реализовать на ВБ...
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161921
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0. создаем пустой файл myTemp.xls
1. на первый лист myTemp.xls копируем нужный Shape
2. сохраняем и закрываем myTemp.xls
3. сохраняем myTemp.xls в поле типа OLE таблицы базы данных
3.1 файл myTemp.xls можно удалить
4. при извлечении чего-либо из поля таблицы всегда знаем, что это будет файл с расширением xls и на первом листе у него будет находится нужный нам Shape

Вопросы?
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161937
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DinoRay _bobтак, на ВБ сделать это просто, но зачем делать это на убогом ВБ, ваяй на Делфе dll-ку, подключай её к ВБ и вперед!
------------------
arbeit macht frei

Просто но как???
Зачем сложности писать длл подключать....
Если это невозможно без длл тогда конечно...

В нете я ответ не нашел...

по-хорошему функционал всегда складывают в dll'ки, а раз у тебя проблема технического характера (не можешь сделать на ВБ), сделай на таких милых тебе Делфях (на самом деле я думаю, что ты и на Делфях этого сделать не можешь, поэтому и спрашиваешь :-) )
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33161954
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibbles0. создаем пустой файл myTemp.xls
1. на первый лист myTemp.xls копируем нужный Shape
2. сохраняем и закрываем myTemp.xls
3. сохраняем myTemp.xls в поле типа OLE таблицы базы данных
3.1 файл myTemp.xls можно удалить
4. при извлечении чего-либо из поля таблицы всегда знаем, что это будет файл с расширением xls и на первом листе у него будет находится нужный нам Shape

Неужели такой гиморой... столько движений...
мне лично кажется что это через одно место.... не сочтите за обиду -:)
Это и есть хваленая интеграция мелкософта?


Вопросы?
Доступа у юзера нет на запись к примеру...
А вообще не есть красивая реализация через Clipboard по моему лучше...
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33162020
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_bob DinoRay _bobтак, на ВБ сделать это просто, но зачем делать это на убогом ВБ, ваяй на Делфе dll-ку, подключай её к ВБ и вперед!
------------------
arbeit macht frei

Просто но как???
Зачем сложности писать длл подключать....
Если это невозможно без длл тогда конечно...

В нете я ответ не нашел...

по-хорошему функционал всегда складывают в dll'ки, а раз у тебя проблема технического характера (не можешь сделать на ВБ), сделай на таких милых тебе Делфях (на самом деле я думаю, что ты и на Делфях этого сделать не можешь, поэтому и спрашиваешь :-) )

Функционал складывают в длл когда он еще где-то нужен будет...
Либо когда логика общая...
Либо когда чего-то не позволяет язык программирования....

У меня ни 1 не 2 случай, подозреваю что 3

----------------------
Это про Делфи
---------------------
ADODataSet.Edit;
Stream := TADOBlobStream.Create(ADODataSet1.FieldByName('IMAGE') as
TBlobField, bmWrite);
Picture.SaveToStream(Stream);
Stream.Free;
ADODataSet.Post;

Я не очень хорошо знаю ВБ вот и обратился на этот форум что нибудь подобное можно сделать на ВБ...
в 5 строк без всяких Длл...?
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33162045
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DinoRay

У меня ни 1 не 2 случай, подозреваю что 3

----------------------
Это про Делфи
---------------------
ADODataSet.Edit;
Stream := TADOBlobStream.Create(ADODataSet1.FieldByName('IMAGE') as
TBlobField, bmWrite);
Picture.SaveToStream(Stream);
Stream.Free;
ADODataSet.Post;

Я не очень хорошо знаю ВБ вот и обратился на этот форум что нибудь подобное можно сделать на ВБ...
в 5 строк без всяких Длл...?

точно так же, шейп в стрим, стрим в базу :-)
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33162070
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DinoRay nibblesВопросы?
Доступа у юзера нет на запись к примеру...
А вообще не есть красивая реализация через Clipboard по моему лучше...
Хотящий ищет возможности, нехотящий ищет причины.
...
Рейтинг: 0 / 0
VB6+Excel+Access
    #33162149
DinoRay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так никто толком ничего и не ответил...

да.. чтобы работать с ВБ нужно иметь терпение...

ладно тема закрыта...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6+Excel+Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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