|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Нашел ошибку!!!Код исправен, Спасибо страдальцу за ответ, косяк в базе данных!!!
|