0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
1

Как открывать через OpenDialog файлы mdb?

29.01.2011, 15:33. Показов 5307. Ответов 20
Метки нет (Все метки)

как через opendialog можно открывать *.mdb файлы. у меня пишет Invalid stream format.
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.openClick(Sender: TObject);
var
r: integer;
begin
 if opendialog1.execute then
 begin
   DBgrid1.columns.loadfromfile (opendialog1.FileName);
 end;
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2011, 15:33
Ответы с готовыми решениями:

OpenDialog открывать и doc и txt файлы
Получается открыть только txt файл. Открывая вордовский документ, появляются символы. Можно ли...

Можно ли OpenDialog 'научить' открывать папки, а не файлы?
можно ли OpenDialog 'научить' открывать папки, а не файлы? Заранее спасибо.

Как не отображать при выборе через OpenDialog ярлыки и скрытые файлы?
Как не отображать при выборе через OpenDialog ярлыки и скрытые файлы? Есть в опциях диалога...

Как открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5"?
Здравствуйте! Научите, пожалуйста, открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains...

20
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
29.01.2011, 16:01 2
Файл *.mdb это - файл базы данных. Указывать его надо в строке соединения с БД. При чем здесь DBgrid1.columns
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
29.01.2011, 16:03  [ТС] 3
а как тогда сделать чтобы при нажатии файл - открыть можно было открыть другую базу которая бы выводилась в dbgrid?
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
29.01.2011, 18:51 4
Закрываете коннект с БД, в свойстве, в котором указывается строка соединения уазываете необходимый Вам путь (из OpenDialog) и открываете соединение. Приблизительно так.
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
29.01.2011, 19:36  [ТС] 5
нельзя ли дать более точный ответ как это сделать? заранее спасибо!
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
29.01.2011, 20:31 6
Цитата Сообщение от denzel_94 Посмотреть сообщение
нельзя ли дать более точный ответ как это сделать?
Чтобы дать точный ответ, нужен точный вопрос. Необходимо точно знать какими компонентами доступа к БД Вы пользуетесь. В Вашем вопросе кроме абсурдного
Delphi
1
DBgrid1.columns.loadfromfile (opendialog1.FileName);
ничего нет.
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
30.01.2011, 20:14  [ТС] 7
Adoconnect , db grid, adodataset, datasours

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
[size="1"][color="grey"][I]Добавлено через 4 часа 48 минут[/I][/color][/size]
unit MainForm;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, FindForm, findeform2ver,
  ExtCtrls, findfordate, DBCtrls, DBClient, Menus;
 
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    Button2: TButton;
    Image1: TImage;
    Button3: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    DBNavigator1: TDBNavigator;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    open: TMenuItem;
    new: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    save: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    OpenDialog1: TOpenDialog;
    ADOTable1: TADOTable;
    ADOTable1Name: TWideStringField;
    ADOTable1Number: TWideStringField;
    ADOTable1passport: TWideStringField;
    ADOTable1coste: TIntegerField;
    ADOTable1data: TDateTimeField;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure newClick(Sender: TObject);
    procedure openClick(Sender: TObject);
 
 
  private
    { Private declarations }
 
  public
    { Public declarations }
 
  end;
 
var
  Form1: TForm1;
 
   implementation
 
{$R *.dfm}
 
procedure TForm1.Button2Click(Sender: TObject);
begin
adodataset1.Filtered := false;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
 
begin
 
   begin
 
    if checkbox3.Checked then
         begin
 
        form4.ShowModal;
      if form4.ModalResult = mrOK then
        with ADODataSet1 do
          begin
            adodataset1.Close;
            CommandText := 'select * from contacts WHERE data = :X';
            Parameters.ParamByName('X') .Value := form4.DateTimePicker1.Date;
            adodataset1.Open;
          end;
         end;
 
 
 
 
      end;
       begin
          begin
 if checkbox1.checked then Form3.ShowModal;
          end;
          begin
            if checkbox2.Checked then Form3.ShowModal;
 
          end;
 if form3.ModalResult = mrOK then
   begin
    if checkbox1.Checked then begin
       AdoDataset1.Filtered := false;
   Adodataset1.Filter := 'name like ''%' + form3.Edit1.text + '%''';
   AdoDataset1.Filtered := True
      end;
 
    if checkbox2.Checked then
    begin
     AdoDataset1.Filtered := false;
   Adodataset1.Filter := 'number like ''%' + form3.Edit1.text + '%''';
   AdoDataset1.Filtered := True;
    end;
   end;
       end;
 
   if adodataset1.RecordCount < 0 then
    begin
        Adodataset1.Filtered := false;
        ShowMessage ('В базе данных нет записей, удоволетворяющих критерию запроса');
    end;
   end;
 
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 
   begin
if checkbox1.Checked then checkbox2.Enabled := false else checkbox2.Enabled := true;
if checkbox1.Checked then checkbox3.Enabled := false else checkbox3.Enabled := true;
   end;
  end;
 
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
 
 
   begin
if checkbox2.Checked then checkbox1.Enabled := false else checkbox1.Enabled := true;
if checkbox2.Checked then checkbox3.Enabled := false else checkbox3.Enabled := true;
   end;
 
end;
 
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
 
   begin
if checkbox3.Checked then checkbox1.Enabled := false else checkbox1.Enabled := true ;
if checkbox3.Checked then checkbox2.Enabled := false else checkbox2.Enabled := true;
   end;
 
 
 
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Caption := 'BDEdit';
   try
     ADOCOnnection1.Open;
     ADODataSet1.Active := true;
   except
      on e:Exception do begin
        DBGrid1.Enabled := false;
        MessageDlg ('Нет файла C:\1.mdb', mtError, [mbOK], 0);
      end;
 
   end;
 
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if DBGrid1.EditorMode then
   begin
     ADOdataset1.UpdateBatch(arCurrent);
   end;
end;
 
 
 
procedure TForm1.newClick(Sender: TObject);
var
r: integer;
begin
 if DBGrid1.EditorMode then
 begin
    r:= MessageDlg('БД редактируется.Создать новый документ' + #10 + 'без сохранения изменений в текущем?',mtWarning,[mbYes,mbNo],0, mbNo);
    if r = mrYes then
    DBGrid1.CleanupInstance;
 end;
end;
 
 
 
end;
end.
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
31.01.2011, 06:34 8
Скажите, у Вас этот код действительно компилируется без ошибок. Или я ослеп и отупел одновременно, но не вижу в uses ссылок на юниты с формами Form3 и Form4
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
31.01.2011, 11:59  [ТС] 9
а Findform и findeform2ver??
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
31.01.2011, 12:03 10
Цитата Сообщение от denzel_94 Посмотреть сообщение
а Findform и findeform2ver??
А, понял! Вообще это положено описывать в uses после implementation
0
1850 / 1172 / 190
Регистрация: 27.03.2009
Сообщений: 4,511
31.01.2011, 12:16 11
нужен доступ на открытие любой выбранной базы по opendialog? я правильно понял?
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
31.01.2011, 12:24 12
Так в ADOConnect и загружай полный путь к БД
0
1850 / 1172 / 190
Регистрация: 27.03.2009
Сообщений: 4,511
31.01.2011, 12:26 13
если так то лучше не загружать базу напрямую при FormActivate, а создать отдельную процедуру, которую и вызывать при необходимости.
типа
Delphi
1
2
3
4
5
6
7
if opendialog1.execute then
if length(opendialog1.files[0])<>0 then
begin
adoconnection1.close;
adoconnection1.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ opendialog1.filename+  ';Persist Security Info=False';
adoconnection1.open;
end;
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
03.02.2011, 17:47  [ТС] 14
по сути процедура рабочая но при открытии ничего в dbgrid не отображается.
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
04.02.2011, 06:16 15
Цитата Сообщение от denzel_94 Посмотреть сообщение
процедура рабочая но при открытии ничего в dbgrid не отображается.
Этой процедурой устанавливается коннект с БД. Чтобы в гриде что-то появилось необходимо открыть DataSet
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
05.02.2011, 13:53  [ТС] 16
пожайлуста поконкретнее как его открыть.
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
05.02.2011, 15:26 17
Любой объект типа TDataSet или его наследник, содержащий селективный запрос открывается посредством OPEN
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 10
05.02.2011, 18:29  [ТС] 18
если не сложно наведи пример!
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
05.02.2011, 20:34 19
Да какой тут пример, блин! Есть наследник DataSet, в нем в свойстве SQL прописываешь текст запроса
select "бла-бла-бла" from "бла -бла-бла"
дале в том месте программы, где это по логике необходимо используешь для этого DataSet метод Open
0
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
07.02.2011, 03:17 20
Ну что вы господа парень втупил немалясь и не может понять где клацнуть Active и Где прописать Запрос на вывод данных. Ну для начала После открытия Базы ты должен определиться какой запрос ты будешь испольщовать типа:
select "бла-бла-бла" from "бла -бла-бла"
Ну вот ты открыл Через Опен Диалог свою базу новую а что дальше? Призадумайся, дальше ты Должен сделать запрос ведь в базе как я понял не одна же таблица? Так вот Ты делашеь запрос Например в ADOQuery
T-SQL
1
SELECT * FROM MilitaryMen
Как это будет выглядить программно!? вот так =)

T-SQL
1
ADOQueryJoinsQuerys.SQL.Text:='SELECT * FROM MilitaryMen';
Ты не пугайся чё такое длинное у меня имя компонента не ищи его я просто его так обозвал =)

Вот после того как ты сделал ConnectionString, потом ты клацнул в ObjectInspector по флажку Active ну естесно программно после чего ты клацнул Active в ADOQuery и приконектил Адошку к ДБгриду можно похлопать себе в ладоши и радоваться! =) Писал на скоряк что пропустил не ругать так как у меня ещё 6.00 утра =)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2011, 03:17

Как "научить" OpenDialog открывать папки и в какой компонент вывести список файлов из них?
Есть программа, которая открывает изображение с помощью OpenDialog и фильтрует его по определенному...

Можно ли открывать таблицы Access при помощи компонента OpenDialog?
можно ли открывать таблицы access при помощи компонента openDialog?

Имеется ли возможность открывать отчеты в *.mdb из VB6.0?
В уже готовой *.mdb есть несколько отчетов, вопрос, могу ли я из VB как то открыть или распечатать...

Как поставить фильтр на openDialog и saveDialog, на txt файлы?
как поставить фильтр на openDialog и saveDialog, на txt файлы? и какой код для сохранения, без...


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

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

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