Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
bv7
21 / 9 / 3
Регистрация: 24.05.2014
Сообщений: 56
#1

Решить проблему повторного открытия Excel файла - Delphi

29.05.2015, 18:51. Просмотров 1899. Ответов 21
Метки нет (Все метки)

Помогите решить проблему повторного открытия excel файла.

Файл открываю так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//Открыть соединение с базой данных.
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  Sl : TStringList;
  Od : TOpenDialog;
begin
  ADOConnection1.Close;
  //KillTask('excel.exe'); //убить процесс
  ListBox1.Clear;
//Выбор файла
  Od := OpenDialog1; 
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( ParamStr(0) );
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageBox(0, 'Файл с заданным именем не найден. Действие отменено.'
      ,'Файл не найден', MB_OK + MB_ICONEXCLAMATION + MB_APPLMODAL);
    Exit;
  end;
 
  ADOConnection1.Close;
 
  //Настройка пути к файлу базы данных.
 
  //Получаем параметры подключения из ADOConnection1.ConnectionString в виде списка.
  Sl := TStringList.Create;
  //Перед присвоением значения свойству Text, заменяем знаки ';' на пары знаков #13#10.
  Sl.Text := StringReplace(ADOConnection1.ConnectionString, ';', #13#10, [rfReplaceAll]);
  //Проверяем, присутствует ли параметр "Data Source".
  i := Sl.IndexOfName('Data Source');
  {Параметр "Data Source" должен иметь значение, равное полному пути к файлу
  базы данных. Если параметр "Data Source" уже присутствует, то устанавливаем
  его значение. Если такого параметра нет, то добавляем этот параметр вместе
  со значением.}
  if i > -1 then
    Sl.Values['Data Source'] := '"' + Od.FileName + '"'
  else
    Sl.Add('Data Source="' + Od.FileName + '"');
  //Перед присвоением значения свойству ConnectionString, заменяем пары знаков #13#10
  //на знак ';'.
  ADOConnection1.ConnectionString := '';
  ADOConnection1.ConnectionString := StringReplace(Trim(Sl.Text), #13#10, ';', [rfReplaceAll]);
  FreeAndNil(Sl);
 
  gFileName := Od.FileName;
  //Открываем базу данных.
  ADOConnection1.Open;
  //Получаем список таблиц базы и записываем этот список в ListBox1.
  ADOConnection1.GetTableNames(ListBox1.Items);
  ListBox1.ItemIndex := 0;
  Button3.Click;
end;
При первом открытии файла он открывается, при последующих попытках открытия любого excel файла, даже того который открывал первый раз, получаю сообщение об ошибке: "Нераспознаваемый формат базы данных. Далее идет полный путь к файлу."

Проект D7 во вложении.
http://www.cyberforum.ru/delphi-beginners/thread2010633.html
1
Вложения
Тип файла: zip E2SQL.zip (438.0 Кб, 1 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2015, 18:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Решить проблему повторного открытия Excel файла (Delphi):

Поле повторного открытия формы не отображаются данные таблицы
Доброго времени. Вот такая проблема: Запускаю в Делфи программу, открываю юнит...

Отображение процесса открытия огромной excel-таблицы
Всем доброго времени суток! Проблема такая - по нажатию кнопки надо открыть...

Ошибка при попытке открытия документа Excel
Почему ругается на открытие файла procedure TForm1.Button1Click(Sender:...

Ошибка открытия файла
Создала новый проект, сохранила его, теперь возникает ошибка открытия файла. В...

Ошибка открытия созданного файла
Проблема: в лабораторной задано создать два файла. В предыдущей лабораторной...

21
bv7
21 / 9 / 3
Регистрация: 24.05.2014
Сообщений: 56
30.05.2015, 21:40  [ТС] #21
Цитата Сообщение от bodya_men Посмотреть сообщение
bv7, хорошо.Но... я думаю что это можно в бд хранить.И проще будет.
В данном случае да, в бд проще и быстрее.
0
bodya_men
Нарушитель
44 / 52 / 8
Регистрация: 01.07.2014
Сообщений: 1,007
Завершенные тесты: 3
31.05.2015, 09:41 #22
bv7, Хорошо.Я посмотрю все три варианта и выберу подходящий.
0
31.05.2015, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 09:41
Привет! Вот еще темы с решениями:

Отлов события открытия файла в приложении
Всем привет. У меня такой трабл. Создал в Delphi текстовый редактор, но...

Ошибка открытия файла через мою программу
Всем доброго времени суток. Решил создать прогу в Делфи, которая шифрует файлы....

После открытия файла не работают поиск и сортировка
Если ввожу входные данные через эдиты все работает Но если после запуска...

Запрет открытия файла если он уже открыт!
Вообщем ситуация такая: написал программу для записи и чтения информации из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru