全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1990
推到 Plurk!
推到 Facebook!

請問如何給Access設聯接密碼

 
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-09 20:25:33 IP:61.231.xxx.xxx 未訂閱

各位前輩:

小弟用程式碼產生了一個空的Access,再以sql命令將各表的TableStructure建好,再將資料由PostgreSQL

拷進這個Access資料庫來。以上都沒問題。小弟的問題是,我要如何以程式給這個Access設個聯接密碼?

我有查過以往的舊文章,那是用AdoX等好奇怪的東西作的,不知道現在還可不可以用。

先謝謝前輩們的指點。

------
Kevin
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-10 09:49:51 IP:202.62.xxx.xxx 未訂閱

您好﹗

建議您直接使用Access提供的資料庫密碼功能來設定密碼來保護資料庫檔案﹐而不要使用ADO的LoginPrompt﹐在程式中的保護可以直接在程式碼中來設定使用者登入的密碼﹒

Access設定資料庫密碼的方法﹕獨占式開啟資料庫檔案 / [工具 \ 保全 \ 設定資料庫密碼]

在連接時﹐將密碼寫入在ADO連線(如ADOConnection元件)的連線字串的Data Link Properties \ All中﹒

------
忻晟
xiexingbing
一般會員


發表:0
回覆:1
積分:0
註冊:2006-07-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-10 13:11:08 IP:220.186.xxx.xxx 未訂閱

ACCESS根本就不用上密码了,哪个密码没有作用!

现在有许多的ACCESS破解软件.

kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-10 15:06:35 IP:210.241.xxx.xxx 未訂閱

先謝謝兩位前輩的指點。

小弟的問題是,小弟的系統大部份是在Win/Linux-PostgreSQL上作的,小弟是為了安全備份及轉移資料的

須求才寫了這個建空Access與建空表及轉資料的功能。小弟是有點不願意讓人輕易點兩下這個Access就可以

看我的資料結構,才想到用聯接密碼去鎖它的。因為這是由程式自動產生,所以也沒法啟動Office去給它設個

聯接密碼。所以才會花了我好久時間在這個問題上。不過,話又說回來了,PostgreSQL也沒什麼了不起,不

管是Windows版或Linux的PostgreSQL,只要進了PostgreSQL也是一要可以看到我是如何設計資料庫的。而

且PostgreSQL與幾乎只是備份的結構的Access,實在差太遠,要看就給你看吧。從這寫來看,小弟我還真

是小題大作了。

我在想,就像前輩講的,現在很多可以破解Access聯接密碼的工具很多,乾脆就把這個題目放下來吧。

不過投入這麼多的時間,實在很想有個答案,就當作練習吧。再請前輩們拉拔一下吧。

------
Kevin
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-07-12 01:37:16 IP:219.70.xxx.xxx 未訂閱

參考:

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21900292.html

unit Unit1;

interface

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

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

var
Form1: TForm1;

implementation
uses ComObj, ActiveX;
{$R *.dfm}

const
adModeShareExclusive = 12;

function UpdateDBPassword(FileMDB: String; OldPassword, NewPassword: String): Boolean;
var ovConn: OleVariant;
begin

// Create ADO connection
ovConn:=CreateOleObject('ADODB.Connection');
try
// Set exclusive mode
ovConn.Mode:=adModeShareExclusive;
try
// Open the database
ovConn.Open(Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source="%s";Jet OLEDB:Database Password="%s"', [FileMDB, OldPassword]));
// Update the password
ovConn.Execute(Format('ALTER DATABASE PASSWORD `%s` `%s`', [NewPassword, OldPassword]));
// Close the connection
ovConn.Close;
// Success
result:=True;
except
// Exception, return failure
result:=False;
end;
finally
// Clear the object reference
ovConn:=Unassigned;
end;

end;

function SetDBPassword(FileMDB: String; Password: String): Boolean;
var ovConn: OleVariant;
begin

// Create ADO connection
ovConn:=CreateOleObject('ADODB.Connection');
try
// Set exclusive mode
ovConn.Mode:=adModeShareExclusive;
try
// Open the database
ovConn.Open(Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source="%s"', [FileMDB]));
// Update the password
ovConn.Execute(Format('ALTER DATABASE PASSWORD `%s` NULL', [Password]));
// Close the connection
ovConn.Close;
// Success
result:=True;
except
// Exception, return failure
result:=False;
end;
finally
// Clear the object reference
ovConn:=Unassigned;
end;

end;


procedure TForm1.Button1Click(Sender: TObject);
begin
// Set initial password
if SetDBPassword('c:\db1.mdb', 'Testing') then
begin
// Update password
UpdateDBPassword('c:\db1.mdb', 'Testing', 'New Password');
// Remove the password
UpdateDBPassword('c:\db1.mdb', 'New Password', '');
end;
end;


end.

kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-07-12 21:06:25 IP:218.168.xxx.xxx 未訂閱

感謝前輩,感謝前輩指點。小弟趕緊試試。真好,真好。

吃Coding這行勞力密集的飯,一天至少要敲八九個鐘頭的鍵盤,直要敲到反胃為止,薪水又少的可憐。若不是三不五時有些突破與進步,還真的撐不下去。

花了好幾箇星期摸索,還是靠前輩的幫忙才解決。謝謝啦。

順便也謝謝 KTop吧。

KTop是吾的第二個家。

------
Kevin
系統時間:2024-05-19 5:19:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!