|
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服务器没有安装在这台电脑上,那 " & vbNewLine & _
"么""数据库路径""指的是服务器电脑路径,例 " & vbNewLine & _
"如路径是C:\,意即服务器的C盘,而不是这 " & vbNewLine & _
"台电脑的C盘。" & vbNewLine & _
"必须按此方式指定路径而不能用网络位置代替。"
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()
'只是检查数据库名称,并不进行任何实际操作
If Not CurrentProject.IsConnected Then
If MsgBox("数据连接不存在,请重新选择连接", vbOKCancel + vbExclamation, "没有连接") = vbOK Then
DoCmd.RunCommand acCmdConnection
Call addLog("检查数据库名称", "到数据库的连接不存在,重新选择连接。")
End If
Else
If CheckDBName(Me.txtDBName) Then
MsgBox "数据库名称检查通过,可以创建", vbInformation + vbOKOnly, ""
Call addLog("检查数据库名称", "名称检查通过")
Else
MsgBox "服务器上有相同名称的数据库", vbExclamation + vbOKOnly, ""
Call addLog("检查数据库名称", "数据库中有同名数据库")
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("数据连接不存在,请重新选择连接", vbOKCancel + vbExclamation, "没有连接") = vbOK Then
DoCmd.RunCommand acCmdConnection
Call addLog("安装数据库", "到数据库的连接不存在,需要重新选择连接。")
End If
Else
If Not CheckDBName(Me.txtDBName) Then
If MsgBox("服务器上有相同名称的数据库,继续吗?" & vbNewLine & vbNewLine & _
"如果继续,该数据库内容将被覆盖", vbExclamation + vbYesNo + vbDefaultButton2, "提示") = vbNo Then
Call addLog("安装数据库", "数据库中有同名数据库,用户取消安装")
Exit Sub
Else
If dropDB(Me.txtDBName) Then
Call addLog("安装数据库", "服务器中原同名数据库已脱开" & Me.txtDBName)
End If
End If
End If
If installDB(defaultDBInstMethod, Me.txtFilePath) Then
MsgBox "数据库已成功安装。现在您可以退出," & vbNewLine & "本程序可以拷贝给网内用户使用", vbOKOnly + vbInformation, ""
Call addLog("安装数据库", Me.txtDBName & "安装成功")
ChangeDB (txtDBName)
'通过是否有UserID这个属性来判定是传统登录还是Windows登录
'呵呵,如果有个用户名是“没有定义”那就惨了。
'不要用currentProject.Connection.Properties ("User Id"),虽然实际使用是区别不大,但在测试的时候,从
'一个登录模式切换到另一个,这个properties集合里面的东西不一定会消失。
legacyLogin = (parseConnStr(CurrentProject.BaseConnectionString, "User Id") <> "没有定义")
If legacyLogin Then
startFormName = legacyLoginStartupForm
Else
startFormName = integratedLoginStartupForm
End If
CurrentProject.Properties("StartupForm") = startFormName
Me.Command52.SetFocus
btnDBInst.Enabled = False
Else
MsgBox "数据库安装失败", vbCritical + vbOKOnly, "出错"
Call addLog("安装数据库", 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, "出错"
CurrentProject.Properties("StartupForm") = setup |
|