技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 11780
|
11#
樓主 |
發(fā)表于 2005-1-29 01:00:00
|
只看該作者
setup窗體全部代碼(一)
<DIV class=quote>
Option Compare Database
Option Explicit
Dim startFormName As String
Dim localSrv, legacyLogin, installOK As Boolean
Private Sub remoteAlert(moreMsg As String)
Dim remoteAlert As String
remoteAlert = "如果SQL服務(wù)器沒(méi)有安裝在這臺(tái)電腦上,那 " & vbNewLine & _
"么""數(shù)據(jù)庫(kù)路徑""指的是服務(wù)器電腦路徑,例 " & vbNewLine & _
"如路徑是C:\,意即服務(wù)器的C盤(pán),而不是這 " & vbNewLine & _
"臺(tái)電腦的C盤(pán)。" & vbNewLine & _
"必須按此方式指定路徑而不能用網(wǎng)絡(luò)位置代替。"
MsgBox remoteAlert & vbNewLine & vbNewLine & moreMsg, vbInformation + vbOKOnly, "重要提示"
End Sub
Private Sub addLog(action As String, message As String)
txtInfo = txtInfo & ">" & action & " (" & CStr(Now) & ") " & message & vbNewLine
End Sub
Private Sub btnCheckDBName_Click()
'只是檢查數(shù)據(jù)庫(kù)名稱(chēng),并不進(jìn)行任何實(shí)際操作
If Not CurrentProject.IsConnected Then
If MsgBox("數(shù)據(jù)連接不存在,請(qǐng)重新選擇連接", vbOKCancel + vbExclamation, "沒(méi)有連接") = vbOK Then
DoCmd.RunCommand acCmdConnection
Call addLog("檢查數(shù)據(jù)庫(kù)名稱(chēng)", "到數(shù)據(jù)庫(kù)的連接不存在,重新選擇連接。")
End If
Else
If CheckDBName(Me.txtDBName) Then
MsgBox "數(shù)據(jù)庫(kù)名稱(chēng)檢查通過(guò),可以創(chuàng)建", vbInformation + vbOKOnly, ""
Call addLog("檢查數(shù)據(jù)庫(kù)名稱(chēng)", "名稱(chēng)檢查通過(guò)")
Else
MsgBox "服務(wù)器上有相同名稱(chēng)的數(shù)據(jù)庫(kù)", vbExclamation + vbOKOnly, ""
Call addLog("檢查數(shù)據(jù)庫(kù)名稱(chēng)", "數(shù)據(jù)庫(kù)中有同名數(shù)據(jù)庫(kù)")
End If
End If
End Sub
Private Sub btnConn_Click()
DoCmd.RunCommand acCmdConnection
End Sub
Private Sub btnDBInst_Click()
On Error GoTo DBInst_err
If Not CurrentProject.IsConnected Then
If MsgBox("數(shù)據(jù)連接不存在,請(qǐng)重新選擇連接", vbOKCancel + vbExclamation, "沒(méi)有連接") = vbOK Then
DoCmd.RunCommand acCmdConnection
Call addLog("安裝數(shù)據(jù)庫(kù)", "到數(shù)據(jù)庫(kù)的連接不存在,需要重新選擇連接。")
End If
Else
If Not CheckDBName(Me.txtDBName) Then
If MsgBox("服務(wù)器上有相同名稱(chēng)的數(shù)據(jù)庫(kù),繼續(xù)嗎?" & vbNewLine & vbNewLine & _
"如果繼續(xù),該數(shù)據(jù)庫(kù)內(nèi)容將被覆蓋", vbExclamation + vbYesNo + vbDefaultButton2, "提示") = vbNo Then
Call addLog("安裝數(shù)據(jù)庫(kù)", "數(shù)據(jù)庫(kù)中有同名數(shù)據(jù)庫(kù),用戶(hù)取消安裝")
Exit Sub
Else
If dropDB(Me.txtDBName) Then
Call addLog("安裝數(shù)據(jù)庫(kù)", "服務(wù)器中原同名數(shù)據(jù)庫(kù)已脫開(kāi)" & Me.txtDBName)
End If
End If
End If
If installDB(defaultDBInstMethod, Me.txtFilePath) Then
MsgBox "數(shù)據(jù)庫(kù)已成功安裝。現(xiàn)在您可以退出," & vbNewLine & "本程序可以拷貝給網(wǎng)內(nèi)用戶(hù)使用", vbOKOnly + vbInformation, ""
Call addLog("安裝數(shù)據(jù)庫(kù)", Me.txtDBName & "安裝成功")
ChangeDB (txtDBName)
'通過(guò)是否有UserID這個(gè)屬性來(lái)判定是傳統(tǒng)登錄還是Windows登錄
'呵呵,如果有個(gè)用戶(hù)名是“沒(méi)有定義”那就慘了。
'不要用currentProject.Connection.Properties ("User Id"),雖然實(shí)際使用是區(qū)別不大,但在測(cè)試的時(shí)候,從
'一個(gè)登錄模式切換到另一個(gè),這個(gè)properties集合里面的東西不一定會(huì)消失。
legacyLogin = (parseConnStr(CurrentProject.BaseConnectionString, "User Id") <> "沒(méi)有定義")
If legacyLogin Then
startFormName = legacyLoginStartupForm
Else
startFormName = integratedLoginStartupForm
End If
CurrentProject.Properties("StartupForm") = startFormName
Me.Command52.SetFocus
btnDBInst.Enabled = False
Else
MsgBox "數(shù)據(jù)庫(kù)安裝失敗", vbCritical + vbOKOnly, "出錯(cuò)"
Call addLog("安裝數(shù)據(jù)庫(kù)", Me.txtDBName & "安裝失敗")
End If
End If
Exit Sub
DBInst_err:
Const conPropertyNotFound = 2473
If Err = conPropertyNotFound Then
CurrentProject.Properties.Add "StartupForm", startFormName
Resume Next
Else
MsgBox Err.Number & Err.Description, vbCritical + vbOKOnly, "出錯(cuò)"
CurrentProject.Properties("StartupForm") = setup |
|