Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 454

/ вопрос решён /

Доброго времени суток, уважаемые эксперты!
На форме есть 4 DBGrid, отображающих данные из access.
Как вывести в Word данные из одного DBGrid ?
Ещё проблема в том, что данные в этом DBGrid постоянно меняются, т.е. каждый раз придётся создавать новый документ и в нём таблицу.
Просмотрела много ссылок, перепробовала много методов, но, к сожалению, решения этой проблемы так и не нашла(
Прилагаю один из вариантов кода... но, к сожалению, не рабочего(
Выдаёт ошибку, что "Ошибочная инструкция SQL, предполагалось DELETE, INSERT, PROCEDURE, SELECT или UPDATE"
Заранее спасибо за помощь

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var v:variant;
  3.  
  4. begin
  5. Query.Close;
  6. Query.SQL.Clear;
  7. Query.SQL.Add('Goods,Number,Price,Data');
  8. Query.Open;
  9.  
  10. v:=CreateOleObject('Word.Application.10');
  11. v.documents.add;
  12. TableOrders.DisableControls;
  13. while (not(Query.eof)) do
  14. begin
  15. v.application.selection.typetext(Query.FieldByName('Goods').asstring+' '+
  16. Query.FieldByName('Number').asstring+' '+
  17. Query.FieldByName('Price').asstring+' '+
  18. Query.FieldByName('Data').AsString+ #13);
  19. Query.Next;
  20. end;
  21.  
  22. TableOrders.EnableControls;
  23. v.visible:=true
  24. end;


Haenta Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задала: Haenta (статус: Посетитель)
Вопрос отправлен: 27 июня 2011, 19:52
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: corban

Здравствуйте, Haenta!
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('Goods,Number,Price,Data'); // вот эта строчка неправильная
//нужно написать правильный запрос типа: Query.SQL.Add('SELECT Goods,Number,Price,Data FROM table_name');
Query.Open;

Ответ отправил: corban (статус: 2-ой класс)
Время отправки: 28 июня 2011, 04:16
Оценка за ответ: 4

Комментарий к оценке: Чуть позже уже исправила эту строчку =-))
Но всё равно спасибо =-))

Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 29 июня 2011, 14:52; участников в обсуждении: 5.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 июня 2011, 20:10 [#1]:

Цитата (Haenta):

данные в этом DBGrid постоянно меняются

сами по себе меняются?

Цитата (Haenta):

Query.SQL.Add('Goods,Number,Price,Data');

сила!!! А про SQL-запросы слышать что-нибудь приходилось?
Haenta

Haenta (статус: Посетитель), 27 июня 2011, 20:21 [#2]:

Мережников Андрей:
>сами по себе меняются?

связаны две таблицы: "клиент" и "заказ"
при выборе какого-то клиента в таблице "клиент", в таблице "заказ" отображаются только его заказы
и заказы можно будет ещё добавлять, изменять, удалять.

Мережников Андрей:
>сила!!! А про SQL-запросы слышать что-нибудь приходилось?

да) немножко) вот изменила:
Query.SQL.Add('Goods,Number,Price,Data FROM Orders');
или SELECT тоже прописывать? Оо
А кофе на клавиатуру тоже вирус пролил?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 июня 2011, 20:26 [#3]:

Цитата (Haenta):

или SELECT тоже прописывать? Оо

полностью запрос прописывать надо.

Т.е. в Word планируется выводить бланк заказа определенного клиента, так?
Может лучше использовать шаблон Excel? О том, как выводить в Excel на форуме рассматривалось уже много раз.
Haenta

Haenta (статус: Посетитель), 27 июня 2011, 20:38 [#4]:

Мережников Андрей:
> полностью запрос прописывать надо.

Query.SQL.Add('SELECT Goods,Number,Price,Data FROM Orders');
так исправила, теперь ошибка "параметр Data не имеет значения по умолчанию"

Мережников Андрей:
> Т.е. в Word планируется выводить бланк заказа определенного клиента, так?

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

Мережников Андрей:
> Может лучше использовать шаблон Excel? О том, как выводить в Excel на форуме рассматривалось уже много раз.

надо именно в Word. раньше хотела таблицей, но теперь думаю можно и списком..
А кофе на клавиатуру тоже вирус пролил?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 июня 2011, 21:03 [#5]:

Цитата (Haenta):

надо именно в Word.

большой разницы нет. Про Word тоже на форуме уже было.

Цитата (Haenta):

так исправила, теперь ошибка "параметр Data не имеет значения по умолчанию"

в каком месте ошибка? я не телепат, может компоненты неверно настроены, может поля в таблице неверно указаны.
Haenta

Haenta (статус: Посетитель), 27 июня 2011, 21:18 [#6]:

Мережников Андрей:
> в каком месте ошибка? я не телепат, может компоненты неверно настроены, может поля в таблице неверно указаны.

Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT Goods,Number,Price,Data FROM Orders');
Query.Open;
v:=CreateOleObject('Word.Application.10');
v.documents.add;

TableOrders.DisableControls;


v:=CreateOleObject('Word.Application.10'); в этой строке ошибка
А кофе на клавиатуру тоже вирус пролил?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 июня 2011, 21:48 [#7]:

проверьте структуру таблицы orders и потренируйтесь в использовании дебаггера, для отлавливания ошибок
ArtGal

ArtGal (статус: 1-ый класс), 28 июня 2011, 11:59 [#8]:

Скрипт таблицы Orders покажите.
corban

corban (статус: 2-ой класс), 28 июня 2011, 13:42 [#9]:

Попробуй поле Data переименовать в ченить типа Data_, дело в том что Data - зарезервированное слово
Sonic-X

Sonic-X (статус: Посетитель), 28 июня 2011, 15:59 [#10]:

дело в том что Data - зарезервированное слово
Тогда нужно взять зарезервированное слово в квадратные скобки -->[Data]. Хотя согласен, лучше не называть поля в таблице зарезервированными словами.
Haenta

Haenta (статус: Посетитель), 29 июня 2011, 14:52 [#11]:

Всем огромное спасибо))
Всё заработало =-))
А кофе на клавиатуру тоже вирус пролил?

29 июня 2011, 15:02: Статус вопроса изменён на решённый (изменил автор вопроса — Haenta)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.03 сек.