Para: Marcelo-RS / compactar msaccess com senha

11/12/2003

1

Caro Marcelo, voce me enviou um codigo para compactar msacces. Funcionou bem, foi ótimo.

Mas quando uso em um banco de dados com senha, não compacta e retorna a mensagem senha inválida.
será que tem uma forma de incluir um parametro de senha?


veja o código que vc me enviou:
unit Unit1;
interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Access_Compact(const aAccess: string);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses ComObj;

{$R *.DFM}

procedure TForm1.Access_Compact(const aAccess: string);
const
bak_ext = ´.$$$´;
stAccessDB = ´Provider=Microsoft.Jet.OLEDB.4.0;´ +
´Data Source=¬s´;
var
JetEngine: Variant;
TempName: string;
begin
TempName := ChangeFileExt(aAccess, bak_ext);
DeleteFile(TempName);
JetEngine := CreateOleObject(´JRO.JetEngine´);
try
JetEngine.CompactDatabase(Format(stAccessDB,[aAccess]),Format(stAccessDB,[TempName]));
DeleteFile(aAccess);
RenameFile(TempName, aAccess);
finally
JetEngine := Unassigned;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Screen.Cursor := crHourglass;
try
Access_Compact(´C:\Projeto\db1.mdb´);
finally
Screen.Cursor := crDefault;
end;
ShowMessage(´Compactação completa.´);
end;

end.



[b:25d67fbd2a]Tópico bloqueado![/b:25d67fbd2a]
Jair Santana,
Não escreva sua mensagem direcionada a uma determinada pessoa. Para essa finalidade, envie uma mensagem privada (mp) ou e-mail. Por favor, releia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.
Sandra/Moderação


Responder