|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Mibh
註冊時間: 2004-02-21 文章: 19
第 1 樓
|
發表於: 星期五 四月 30, 2004 9:36 am 文章主題: 請問一個vfp+access的問題 |
|
|
小弟都是用vfp+access的方式來建構系統,最近遇到一個問題請各位大大協助。
如果user的電腦沒安裝access的話要如何去壓縮access的資料庫?。
下面的程式是在有access情況下的資料庫壓縮方法,提供給各位狐友參考。
If MessageBox("資料庫壓縮將花費一段時間!!" +Chr(13) + "立即壓縮請選擇 '是(Y)'"+ Chr(13) +"不壓縮請選擇 '否(N)'", 4+32+0, "資料壓縮")=6
mypath=left(sys(16),rat("\",sys(16)))
appx=createobject("Access.Application")
CurMDB = (mypath+"test.mdb")
TempMDB = (mypath+"test1.mdb")
If file(TempMDB)
Dele file &TempMDB
Endif
appx.DBEngine.CompactDatabase (CurMDB, TempMDB)
Dele file &CurMDB
Rename &TempMDB to &CurMDB
appx.Quit
Messagebox("壓縮完成!",64,"訊息")
Endif |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期五 四月 30, 2004 10:04 am 文章主題: |
|
|
應該可以透過 odbc 來作,不過沒試過 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 3 樓
|
發表於: 星期二 五月 04, 2004 10:13 am 文章主題: |
|
|
據說要安裝 ADOX 才行~~
ADOX 可以對 Access 資料庫做較低階的處理~~
你可以上微軟網站找ㄧ下~ |
|
回頂端 |
|
|
Mibh
註冊時間: 2004-02-21 文章: 19
第 4 樓
|
發表於: 星期二 五月 04, 2004 11:00 am 文章主題: |
|
|
謝謝各位的建議,若我研究出來,再與各位分享。 |
|
回頂端 |
|
|
Mibh
註冊時間: 2004-02-21 文章: 19
第 5 樓
|
發表於: 星期四 五月 06, 2004 12:07 pm 文章主題: |
|
|
elleryq建議可用adox,經查詢後發現是無法使狦ADOX的,但是可用. "Microsoft Jet and Replication Objects 2.5 Library" (JRO)直接控制access資料庫。下面分別是在vb、c++下的用法
一、vb
Dim oJetEngine As JRO.JetEngine
Dim sSourceConn As String
Dim sDestConn As String
Set oJetEngine = New JRO.JetEngine
' Engine Type = 4 compacts an Access database in 3.5 format
' Engine Type = 5 compacts an Access database in 4.0 format (default)
sSourceConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\advworks.mdb;" & _
"Jet OLEDB:Engine Type=5;"
sDestConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\advworks1.mdb;" & _
"Jet OLEDB:Engine Type=5;"
' Compact the database (makes a new copy)
oJetEngine.CompactDatabase sSourceConn, sDestConn
二、c++
#import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace
...
try
{
IJetEnginePtr jet(__uuidof(JetEngine));
jet->CompactDatabase( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb;Jet OLEDB:Database Password=test",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \
"Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test");
}
catch(_com_error &e)
{
::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;
}
以上參考http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q230/5/01.ASP&NoWebContent=1
最後小弟改寫成vfp但改寫的不是很好,請那位大大可再改寫的更完美
CurMDB = "D:\TESS.MDB"
TempMDB = "D:\TESS1.MDB"
If file(TempMDB)
Dele file &TempMDB
Endif
oJetEngine = createobject("JRO.JetEngine")
* Engine Type = 4 compacts an Access database in 3.5 format,access 97
* Engine Type = 5 compacts an Access database in 4.0 format (default),access 2000
sSourceConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+CurMDB+";Jet OLEDB:Engine Type=4;"
sDestConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+TempMDB+";Jet OLEDB:Engine Type=4;"
* Compact the database (makes a new copy)
oJetEngine.CompactDatabase (sSourceConn, sDestConn)
Dele file &CurMDB
Rename &TempMDB to &CurMDB
oJetEngine.quit
Messagebox("壓縮完成!",64,"訊息") |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 6 樓
|
發表於: 星期五 五月 07, 2004 8:54 am 文章主題: |
|
|
原來如此~~
謝謝分享囉~~ |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|