|
Вопрос # 5 454/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты!
На форме есть 4 DBGrid, отображающих данные из access.
Как вывести в Word данные из одного DBGrid ?
Ещё проблема в том, что данные в этом DBGrid постоянно меняются, т.е. каждый раз придётся создавать новый документ и в нём таблицу.
Просмотрела много ссылок, перепробовала много методов, но, к сожалению, решения этой проблемы так и не нашла(
Прилагаю один из вариантов кода... но, к сожалению, не рабочего(
Выдаёт ошибку, что "Ошибочная инструкция SQL, предполагалось DELETE, INSERT, PROCEDURE, SELECT или UPDATE"
Заранее спасибо за помощь
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- var v:variant;
-
- begin
- Query.Close;
- Query.SQL.Clear;
- Query.SQL.Add('Goods,Number,Price,Data');
- Query.Open;
-
- v:=CreateOleObject('Word.Application.10');
- v.documents.add;
- TableOrders.DisableControls;
- while (not(Query.eof)) do
- begin
- v.application.selection.typetext(Query.FieldByName('Goods').asstring+' '+
- Query.FieldByName('Number').asstring+' '+
- Query.FieldByName('Price').asstring+' '+
- Query.FieldByName('Data').AsString+ #13);
- Query.Next;
- end;
-
- TableOrders.EnableControls;
- v.visible:=true
- end;
 |
Вопрос задала: 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 (статус: Посетитель), 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 (статус: Посетитель), 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 (статус: Посетитель), 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 (статус: 1-ый класс), 28 июня 2011, 11:59 [#8]:
Скрипт таблицы Orders покажите.
|
|
corban (статус: 2-ой класс), 28 июня 2011, 13:42 [#9]:
Попробуй поле Data переименовать в ченить типа Data_, дело в том что Data - зарезервированное слово
|
|
Sonic-X (статус: Посетитель), 28 июня 2011, 15:59 [#10]:
дело в том что Data - зарезервированное слово
Тогда нужно взять зарезервированное слово в квадратные скобки -->[Data]. Хотя согласен, лучше не называть поля в таблице зарезервированными словами.
|
|
Haenta (статус: Посетитель), 29 июня 2011, 14:52 [#11]:
Всем огромное спасибо))
Всё заработало =-))
А кофе на клавиатуру тоже вирус пролил?
|
29 июня 2011, 15:02: Статус вопроса изменён на решённый (изменил автор вопроса — Haenta)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|