| 
| 
 | Вопрос # 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:=trueend;
|  |   Вопрос задала: 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) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |