ورود

View Full Version : خطا برای ثبت اطلاعات تو یه جدوله access



mina_148m
پنج شنبه 04 بهمن 1386, 17:59 عصر
سلام،
من می خوام تو یه برنامم یه سری اطلاعات تو یه جدولم یه موقع ثبت بشه و یه سری هم یه موقعه ای که یه سری محاسابات انجام شده منتها و قتی با دستور locate انجان می دم خطامی ده
cannot operate this operation on a open dataset
وقتی هم قبلش دستورcloseمی نویسم میگه برعکسش نمی تونم



DataModule1.ADOmoney.Active :=true;
DataModule1.ADOmoney.TableName:='tablemoney';
datamodule1.adomoney.open;
datamodule1.adomoney.first;

if DataModule1.ADOmoney.Locate ('esm', edit4.Text , [loCaseInsensitive]) then
begin
datamodule1.ADOmoney.Insert ;
datamodule1.ADOmoney.FieldByName('DarsadMaliyat'). asstring :=edit2.text;
datamodule1.ADOmoney.FieldByName('MaliyatMoney').a sstring :=inttostr(z);
datamodule1.ADOmoney.FieldByName('FinalMoney').ass tring:=edit12.text;
datamodule1.ADOmoney.FieldByName('AllMoney').asstr ing:=edit12.text;
datamodule1.ADOmoney.FieldByName('AllTmoney').asst ring:=inttostr(strtoint(edit9.text)*strtoint(edit1 0.text));
datamodule1.ADOmoney.FieldByName('AllAMoney').asst ring:= inttostr(strtoint(edit8.text)*strtoint(edit11.text ));
datamodule1.ADOmoney.FieldByName('DatemoneyWithMal iyat').asstring :=label20.Caption ;
datamodule1.ADOmoney.FieldByName('DatamoneyWithout Maliyat').asstring:=label22.Caption ;
datamodule1.ADOmoney.FieldByName('RemainMoney').as string:=inttostr(remainm);


datamodule1.ADOmoney.Post;
datamodule1.adomoney.Close;
end;


خیلی خیلی ممنون می شم لطف کنید مثل همیشه کمک کنید من باید چیکار کنم

JAFO_IRAN
پنج شنبه 04 بهمن 1386, 19:13 عصر
سلام

فکر نکنم خطا روی locate باشه - بیشتر به سطر تعیین TableName میاد که خراب باشه...

هم Active = true دارید هم open. اشکال در اینه که TableName رو بعد از Active کردن تعیین کردید. فکر کنم توی همین کد اگه سطر اول رو بردارید حله...
البته نمیدونم منطق کار چیه - چون locate میکنید و اگر پیدا شد با insert یک رکورد جدید میزنید - اما شاید واقعا قراره همین کار انجام شه...

mina_148m
پنج شنبه 04 بهمن 1386, 20:15 عصر
سلام،
من خط اولم برداشتم ولی باز نشد همون خطارو می ده

البته نمیدونم منطق کار چیه
یکسری اطلاعات که کلید اصلیم هم توشه اوله برنامه ثبت می شه حقوق هم بعدن که محاسبه شد می خوام وقتی که نام طرف توی edit با جستجوی کدپرسنلی مشخص شد اطلاعات حقوق مربوطه به همون شخص تو رکورد خودش ثبت بشه

ممنون می شم منو کمک کنید:اشتباه::اشتباه:

JAFO_IRAN
پنج شنبه 04 بهمن 1386, 20:30 عصر
سلام

1. تست کردی که خطا واقعا روی کدوم سطر گرفته میشه؟ (من گفتم روی سطری که نام Table رو میدید).
2. در مورد منطق هم فکر کنم اشتباه باشه چون قاعدتا شما باید همون رکورد پیدا شده را "اصلاح" کنید - به اینکه رکورد جدیدی بزنید - یعنی به جای Insert باید Edit بنویسید.
3. اگر تمام فرضیات من درست باشه و هنوز با حذف سطر اول مشکل برقراره یعنی در DataModule شما در همون محیط دلفی، این ADOMoney حالت Active داره - راستی چرا TableName رو در دلفی set نمیکنی؟
خلاصه همین کد رو نگهدارید و در سطر اول، به جای True، از False استفاده کنید ببینیم چی میشه....

ارادت