powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с Excel через ADO.
19 сообщений из 19, страница 1 из 1
Работа с Excel через ADO.
    #37822801
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, пожалуй, это извращение, однако почему бы и нет? :)

Работаем с листами Excel, как с таблицами - вроде удобно и не запарно.

Создаю таблицу (лист) через ADOQuery:
Код: plaintext
1.
ADOQuery1->SQL->Add("CREATE TABLE MyTable1 (Field1 VARCHAR(20), Field2 VARCHAR(20))");



Все нормально создается:



Теперь я вставляю под эти поля данные (через Excel обычным копипастом). Но далее почему-то через запрос:
Код: plaintext
1.
ADOQuery1->SQL->Add("SELECT * FROM MyTable1");


возвращается пустой результат:
Field1 Field2

Тогда я добавляю туда данные запросом (предварительно удалив оттуда все значения под названиями полей):
Код: plaintext
1.
ADOQuery1->SQL->Add("INSERT INTO MyTable1 (Field1, Field2) VALUES('Александр', 'Попов')");


И после этого вновь делаю выборку:
Код: plaintext
1.
ADOQuery1->SQL->Add("SELECT * FROM MyTable1");


И получаю:
Field1 Field2Александр Попов

Я же хочу вбить туда (в лист Excel) свою инфу (обычным копипастом), чтобы потом можно было выборкой все эти данные получать. Но почему-то не получается. Я не понимаю в чем тут секрет. Пробовал копировать формат этой записи (которую добавил через INSERT) - все равно не сработало :(

Подскажите, пожалуйста, в чем тут дело?

Благодарю!
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822809
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К С++ это не относится. Это вопрос по Экселю и его версии "базы данных".

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822812
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Immortal...
Теперь я вставляю под эти поля данные (через Excel обычным копипастом). ...
"Сохранить", нажми, даа ...
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822813
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Не понял Вас на этот раз :)
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822815
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Immortalqwerty112,

Не понял Вас на этот раз :)
нуу, после того как вставил копипастом, и перед программным селектом, страницу нужно сохранить
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822816
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Нет, ну я, конечно, дурак, но не до такой же степени.
Файл Excel'я я сохраняю (т.е. данные там есть).
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822869
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,

или к гадалке или сюда
http://support.microsoft.com/kb/257819
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822871
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да еще вот это.....
авторVARCHAR(20)
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822887
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R Dmitry,

а что в этом такого?
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822963
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_ImmortalДа, пожалуй, это извращение, однако почему бы и нет? :)
Работаем с листами Excel, как с таблицами - вроде удобно и не запарно...Ну, это не "извращение", я, например, советую это время от времени, если видно, что задача соответствует...

С другой стороны, почему именно ADOQuery?
Почему бы не ADODB.Connection/RecordSet?
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822969
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,

excel это не база данных, и там нет типов данных в поле, есть только тип данных внесенный в определенную ячейку.
Если конечно сам не сделаешь на классах, макросах или еще как нибудь проверку типа вводимых данных.
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822984
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

А есть разница? :)

Касательно моей проблемы, думаю что нет...
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822988
ikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_ImmortalСоздаю таблицу (лист) через ADOQuery:
Код: plaintext
1.
ADOQuery1->SQL->Add("CREATE TABLE MyTable1 (Field1 VARCHAR(20), Field2 VARCHAR(20))");



Теперь я вставляю...
гм... я не понял.
а зачем создавать таблицу до того как в ней будут нужные данные?
из существующего листа разве нельзя сделать селект?
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822991
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз касательно вашей проблемы - думаю, есть. И R_Dmitry указал на одно из отличий.
Просто с рекордсетом вы сможете работать, как с таблицей, включая типизацию; а вот напрямую с листом - нет. А уж организовать обмен данными рекордсета и листа - это не просто, а очень просто...
Тем более, что у вас, как я понял, Excel 2010? Так пользуйте тогда .NET и DataTable.
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822994
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMПросто с рекордсетом вы сможете работать, как с таблицей
Да я просто думал, что через ADOQuery тоже смогу работать как с таблицей...

А вот с RecordSet'ом, честно говоря, никогда дел не имел и не знаю как... Всегда юзаю либо ADOQuery, либо ADOTabel :)

Так получается, что через ADOQuery эту проблему не разрешить?
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37822996
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ikki,

ikkiиз существующего листа разве нельзя сделать селект?
Именно что нельзя. ADOQuery будет кричать, что не знает такой таблицы (листа).
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37823000
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печально :)
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37834039
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMПросто с рекордсетом вы сможете работать, как с таблицей, включая типизацию
Ребят, кто-нибудь может дать линк по использованию RecordSet'а из C++? Я гуглил, но на какую-то ерунду нарывался. И все на VS...
...
Рейтинг: 0 / 0
Работа с Excel через ADO.
    #37834500
The_ImmortalAndreTMПросто с рекордсетом вы сможете работать, как с таблицей, включая типизацию
Ребят, кто-нибудь может дать линк по использованию RecordSet'а из C++? Я гуглил, но на какую-то ерунду нарывался. И все на VS...
В поставке офиса 2003 про в комплект поставки к акцессу идет справка по ADO 2.5. Там вроде и для C++ примеры.
-----
Не люблю Progress OpenEdge.

ЗЫ Как-то так

ADO 2.5 API Reference

Close Method
Closes an open object and any dependent objects.

Syntax
object.Close
Remarks
Use the Close method to close a Connection, a Record, a Recordset, or a Stream object to free any associated system resources. Closing an object does not remove it from memory; you can change its property settings and open it again later. To completely eliminate an object from memory, set the object variable to Nothing (in Visual Basic) after closing the object.

Connection

Using the Close method to close a Connection object also closes any active Recordset objects associated with the connection. A Command object associated with the Connection object you are closing will persist, but it will no longer be associated with a Connection object; that is, its ActiveConnection property will be set to Nothing. Also, the Command object's Parameters collection will be cleared of any provider-defined parameters.

You can later call the Open method to re-establish the connection to the same, or another, data source. While the Connection object is closed, calling any methods that require an open connection to the data source generates an error.

Closing a Connection object while there are open Recordset objects on the connection rolls back any pending changes in all of the Recordset objects. Explicitly closing a Connection object (calling the Close method) while a transaction is in progress generates an error. If a Connection object falls out of scope while a transaction is in progress, ADO automatically rolls back the transaction.

Recordset, Record, Stream

Using the Close method to close a Recordset, Record, or Stream object releases the associated data and any exclusive access you may have had to the data through this particular object. You can later call the Open method to reopen the object with the same, or modified, attributes.

While a Recordset object is closed, calling any methods that require a live cursor generates an error.

If an edit is in progress while in immediate update mode, calling the Close method generates an error; instead, call the Update or CancelUpdate method first. If you close the Recordset object while in batch update mode, all changes since the last UpdateBatch call are lost.

If you use the Clone method to create copies of an open Recordset object, closing the original or a clone does not affect any of the other copies.

See Also
Visual Basic Example | VBScript Example | Visual C++ Example | Visual J++ Example

Open Method (ADO Connection) | Open Method (ADO Recordset) | Save Method

Applies To: Connection Object | Record Object | Recordset Object | Stream Object

© 1998-2003 Microsoft Corporation. All rights reserved.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с Excel через ADO.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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