Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2009, 11:34   #1
Dimok82
 
Регистрация: 13.03.2009
Сообщений: 5
По умолчанию Копирование данных типа Дата из Excel в mdb таблицу

Копирую данные из Excel в mdb но вот проблема, немогу корректно перенести поле Дата, поля в Excel и MDB имеют одинаковый формат, Типа (01.01.9999), собственно сам исходник:
procedure TForm1.N2Click(Sender: TObject);
var
ea:variant;
row,x:integer;
i: word;
ArData: Variant;
begin
try
begin
if opendialog1.Execute then
begin
Screen.Cursor := crSQLWait;
form1.ADOQuery1.open;

form1.ADOQuery4.Close;
form1.ADOQuery4.SQL.Clear;
form1.ADOQuery4.SQL.Add('Delete from Ëèñò2');
form1.ADOQuery4.ExecSQL;

ea:=CreateOleObject('Excel.Applicat ion');
ea.Workbooks.Open(opendialog1.FileN ame);
ea.Visible:=false;
row:=ea.ActiveSheet.UsedRange.Rows. Count;
ArData := VarArrayCreate([1, row, 1, 6], varOleStr);
ArData := ea.ActiveSheet.Range['A1:H' + IntToStr(row)].Value;
for i:=1 to row do begin
adotable1.Open;
adotable1.Append;

adotable1.Fields[0].Value:=ArData[i, 1];
adotable1.Fields[1].Value:=ArData[i, 2];
adotable1.Fields[2].Value:=ArData[i, 3];
adotable1.Fields[3].Value:=strtodate (ArData[i, 4]);<---вот тут видимо проблема
adotable1.Fields[4].Value:=ArData[i, 5];
adotable1.Fields[5].Value:=ArData[i, 6];
adotable1.Fields[6].Value:=ArData[i, 7];
adotable1.Fields[7].Value:=ArData[i, 8];
application.ProcessMessages;
x:=row;
ProgressBar1.Position:=Round(100*i/x);
end;
adotable1.Post;
ea.quit;
adotable1.First;
ProgressBar1.Position:=0;
form1.ADOQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Add('Select Фамилия,Имя,Отчество,Дата,Город,Ули ца,Дом,Квартира From Лист2 order by Фамилия');
form1.ADOQuery2.Open;
form1.ADOQuery5.Close;
form1.ADOQuery5.Open;
Screen.Cursor := crDefault;
end;

end;
except
begin
Screen.Cursor := crDefault;
ea.quit;
MessageDlg('Ошибка загрузки данных',mtError,[mbOK],0);
exit;
end;
end;
end;
Выдаёт сообщение о несовпадении типов данных, немогу понять в чём проблема, так как форматы полей в базе и в таблице Экселя совпадают. Что я делаю не так, немогу понять....
подскажите плиз....
Dimok82 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из Excel в созданную таблицу Самоучка БД в Delphi 2 06.11.2008 20:53
копирование данных в новую таблицу при интерактивном выборе файла gege Microsoft Office Excel 7 22.10.2008 17:16
копирование данных из таблицы в таблицу Sack Microsoft Office Access 1 16.09.2008 05:59
запись в БД(*.MDB) из Excel VB MUZDIE Microsoft Office Excel 1 18.01.2008 17:13
Запись в БД(*.MDB) из Excel VB MUZDIE Помощь студентам 2 18.01.2008 12:58