Hallo Ich habe folgenes Problem
Per
ADO verbinde ich auf ein Excelfile und zeige die Daten in einem DBGrid an:
Delphi-Quellcode:
procedure TMainForm.ConnectToExcel;
var StrConn: Widestring;
begin
strConn:= 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=c:\Tests\Telefon_MMZO.xls' + ';' +
'Extended Properties=Excel 8.0;';
MainData.ADOConnection1.Connected := False;
MainData.ADOConnection1.ConnectionString:=StrConn;
try
MainData.ADOConnection1.Open;
Except
ShowMessage('Unable to connect to Excel!!!');
raise;
end;
end;
Delphi-Quellcode:
procedure TMainForm.FetchData;
begin
ConnectToExcel;
MainData.ADOQuery1.Close;
MainData.ADOQuery1.SQL.Text := 'SELECT F2 AS Name,F3 AS Telefon,F5 AS EMail,F6 AS Bezeichnung,F7 AS Zimmer,F8 AS Adresse,F9 AS KST FROM [Telefon$] WHERE NOT F2 = "Name" AND F2 IS NOT NULL ';
MainData.ADOQuery1.Open;
DBGrid.Columns[0].Width :=150;
DBGrid.Columns[1].Width :=50;
//ect.
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
MainData.ADOConnection1.LoginPrompt :=False;
MainData.ADOQuery1.Connection := MainData.ADOConnection1;
MainData.DataSource1.DataSet := MainData.ADOQuery1;
FetchData;
end;
Nun will ich das ganze noch filtern mit einem String den ich in einem Edit eingebe...
Delphi-Quellcode:
procedure TMainForm.FilterEditChange(Sender: TObject);
begin
if FilterEdit.Text<>'' then
begin
MainData.DataSource1.DataSet.Filter := DBGrid.Columns.Items[DBGrid.SelectedIndex].FieldName+' = '+char(39)+FilterEdit.Text+'*'+char(39);
MainData.DataSource1.DataSet.Filtered := True;
end
else
MainData.DataSource1.DataSet.Filtered := False;
end;
Leider bekomme ich als Suchergebnis immer ein leeres DBGRid
Woran kann das liegen?
Besten Dank und Gruss
Smn
Es gibt 10 Arten von Menschen.
Diejenigen, die das binäre System verstehen, und die, die es nicht verstehen.
Aber ich frag mich was ist mit den anderen 8?