![]() |
![]() |
Правила Форума редакция от 22.06.2020 |
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
Опции темы | Опции просмотра |
![]() |
![]() |
![]() |
![]() unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, AdvMenus, AdvMenuStylers, Menus; type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; Table1: TTable; AdvPopupMenu1: TAdvPopupMenu; AdvMenuOfficeStyler1: TAdvMenuOfficeStyler; N11: TMenuItem; N21: TMenuItem; N22: TMenuItem; UpdateSQL1: TUpdateSQL; Table1BDEDesigner: TStringField; Table1BDEDesigner2: TStringField; Table1BDEDesigner3: TStringField; Table1BDEDesigner4: TFloatField; Table1BDEDesigner5: TFloatField; Table1BDEDesigner6: TDateTimeField; procedure N11Click(Sender: TObject); procedure N21Click(Sender: TObject); procedure N22Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.N11Click(Sender: TObject); begin If AdvPopupMenu1.PopupComponent=DbGrid1 Then Begin With Table1 do Begin If State=dsBrowse Then Insert; End; End; end; procedure TForm1.N21Click(Sender: TObject); begin If AdvPopupMenu1.PopupComponent=DbGrid1 Then Begin With Table1 do Begin If State=dsBrowse Then Post; End; End; end; procedure TForm1.N22Click(Sender: TObject); begin If AdvPopupMenu1.PopupComponent=DbGrid1 Then Begin With Table1 do Begin If State=dsBrowse Then Delete; End; End; end; procedure TForm1.FormCreate(Sender: TObject); begin Form1.Table1.Active:=True; Form1.DataSource1.AutoEdit:=True; end; end. ![]() Процедура в выделенном тексте неработает. Выкидывает сообщение что таблица открыта не в режиме редактирования или просмотра кто сталкивался подскажите чего делать немогу сохранять изменения удаляет и добавляет строки нормально. Через UpdateSQL тоже работать нехочет при сохранении. (общий доступ к книге открыт) Единственная заморочка возможно в том что офис стоит 2003. |
|
![]() |
![]() ![]() |
Реклама: | Интегрируй приложения вместе с Альбато: интеграция ozon с vk - синхронизация за 5 минут! | какие фигуристы будут участвовать в шоу этери тутберидзе 10 апреля | Накладные светильники | ntc10k датчик температуры | детский уголок со столом |
![]() |
![]() |
![]() Ну и в чем проблема? Ведь все просто!
![]() State=dsBrowse, когда мы находимся в режиме просмотра, а не редактирования. Т.е. State<>dsBrowse после Edit или Post! А у тебя? ![]() Т.е. меняешь "=" на "<>". Или перед Post Edit ставишь! (шутка ![]()
__________________
Самая короткая дорога - та, которую знаешь. |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() единственная проблема в том что кады я пытаюсь прописать
procedure TForm1.FormCreate(Sender: TObject); begin Form1.Table1.Active:=True; Form1.DataSource1.AutoEdit:=True; Form1.Ttable1.State=dsBrowse; end; Почемуто возникает ошибка при компиляции F1 юзал непомогает ![]() |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() Так, блин, это свойство только для чтения. Оно отображает текущее состояние набора данных. Это свойство ReadOnly!
Добавлено через 1 минуту А текст ошибки? Он же ясно пишет что не может писать в свойство ReadOnly! Поставь хоть переводчик себе какой... Если помогло, жми спасибо!
__________________
Самая короткая дорога - та, которую знаешь. Последний раз редактировалось AlnZ; 04.06.2007 в 09:54.. Причина: Добавлено сообщение |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() Я вроде написал что выдает ошибку DataState is not Edit or Isert mode.
А при добавления строки Form1.Ttable1.State=dsBrowse; [dsEdit,dsInsert] ну некомпилит он хоть убей. |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() Так!!!
Form1.Ttable1.State = dsBrowse или Form1.Ttable1.State := dsBrowse т.е. "=" или ":=" Зачем строку "Form1.Ttable1.State := dsBrowse" добавлять? Если это свойство отоброжает состояние данных и управляетьяс самим объектом? А ошибка "DataState is not Edit or Isert mode." означает, что ты попытался сделать Post, до того, как набор данных был открыт на редактирование! Т.е. Post нужно делать, когда State НЕ РАВЕН dsBrowse! И я это в своем первом ответе написал! Надо в условии "=" поменять на "<>". А строчку "Form1.Ttable1.State := dsBrowse" (если она есть) убрать нафиг!!!
__________________
Самая короткая дорога - та, которую знаешь. |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() проблема в том что я немогу Form1.Ttable1.State := dsBrowse или <> компилятор выдет ошибку. Убираю совсем строку всеравно недобавляет данные ругаеться на datastate mode.
|
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() А если сделать Table1.Edit;
не поможет ? |
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() попробую незнаю мож и поможет завтра отпишусь а вообще ктонибудь могет код небольшой выложить для редактирования таблицы excel через dbgrid. с использованием например popupmenu либо кнопок.
|
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() Form1.Ttable1.State=dsBrowse; - убираешь нафиг! ОНА НЕ НУЖНА!
а вместо: If State=dsBrowse Then пишеш: If State<>dsBrowse Then в чем проблема?
__________________
Самая короткая дорога - та, которую знаешь. |
|
![]() |
![]() ![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка odac + mydac в Delphi7 | evgen_vas55 | Delphi | 8 | 31.01.2013 16:40 |
Установка odac + mydac в Delphi7 | evgen_vas55 | Компоненты | 5 | 16.12.2010 00:53 |
Delphi7 - Символ продолжения строки | ch_vas | Delphi | 13 | 16.01.2010 03:43 |
delphi7 +xml 100мб | Mutabor182 | Delphi | 2 | 08.03.2009 11:52 |
Запрос Access2007 в Delphi7 | dimarix | Delphi | 6 | 07.04.2008 09:08 |
|
|