![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Периодически вываливается ошибка см. вложение. чем может быть вызвано?использую БД ACCES
|
|
#2
|
||||
|
||||
|
Возможно накрутили с каскадными операциями.
|
|
#3
|
||||
|
||||
|
Суть в том что ошибка возникает через раз, а то и через 2...
прилагаю исходный код, подскажите может я что-то перемудрил: процедура вызова: Код:
Button3.Enabled:=False; Clear(ADOTable1,0); Excel(); Button3.Enabled:=True; Процедура Clear: Код:
procedure Clear(ADOTable:TADOTable;z:integer);
Var
x:integer;
begin
With ADOTable do
begin
if z=1
then x := MessageDlg('Подтвердите очистку таблицы.', mtconfirmation, [mbYes, mbNo], 0)
else x:=6;
if x = 6 then
begin
ADOTable.First;
While not EOF do
ADOTable.Delete;
end;
end;
end;процедура Excel: Код:
procedure Excel();
var
x: TXLSFile;
i: Integer;
C: TCell;
Ex1,Ex2,Ex3,Ex4,Ex5,Ex6:integer;
begin
Ex1:=StrToInt(Form1.Ex1.Text);
Ex2:=StrToInt(Form1.Ex2.Text);
Ex3:=StrToInt(Form1.Ex3.Text);
Ex4:=StrToInt(Form1.Ex4.Text);
Ex5:=StrToInt(Form1.Ex5.Text);
Ex6:=StrToInt(Form1.Ex6.Text);
Form1.OpenDialog1.Execute();
x := TXLSFile.Create;
x.OpenFile(Form1.OpenDialog1.FileName);
for i := 0 to x.Workbook.Sheets[0].Cells.Count - 1 do
begin
C := x.Workbook.Sheets[0].Cells.Item[i];
if IntToStr(C.Row) <> '0' then
with Form1.ADOTable1 do
begin
Form1.ADOTable1.Last;
if IntToStr(C.Col) = IntToStr(Ex1) then
begin
Form1.ADOTable1.Insert;
FieldByName('Naim').AsString := C.Value;
end;
if IntToStr(C.Col) = IntToStr(Ex2) then
begin
Form1.ADOTable1.Edit;
FieldByName('Kod').AsInteger := C.Value;
end;
if IntToStr(C.Col) = IntToStr(Ex3) then
begin
Form1.ADOTable1.Edit;
FieldByName('Cen').AsFloat := C.Value;
end;
if IntToStr(C.Col) = IntToStr(Ex4) then
begin
Form1.ADOTable1.Edit;
FieldByName('Grup').AsString := C.Value;
end;
if IntToStr(C.Col) = IntToStr(Ex5) then
begin
Form1.ADOTable1.Edit;
FieldByName('KolVo').AsInteger := C.Value;
end;
if IntToStr(C.Col) = IntToStr(EX6) then
begin
Form1.ADOTable1.Edit;
FieldByName('Str').AsString := C.Value;
end;
end;
end;
end;Для подключения к документу Excel использовал библиотеку XLSFile. |
|
#4
|
||||
|
||||
|
Нашел ошибку!!!Код исправен, Спасибо страдальцу за ответ, косяк в базе данных!!!
|