📄 frmdbinfo.frm
字号:
VERSION 5.00
Object = "{C2A990D9-DFD1-4B7C-A432-A1DD219DC55F}#1.0#0"; "UserCtrProj.ocx"
Begin VB.Form frmDBInfo
Caption = "数据库设置"
ClientHeight = 3225
ClientLeft = 60
ClientTop = 345
ClientWidth = 4485
LinkTopic = "Form2"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3225
ScaleWidth = 4485
StartUpPosition = 3 'Windows Default
Begin UserCtrProj.UsrPicBtn cmdCancel
Height = 525
Left = 3120
TabIndex = 8
Top = 2400
Width = 1095
_ExtentX = 1931
_ExtentY = 926
Picture = "frmDBInfo.frx":0000
Caption = " 取消"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin UserCtrProj.UsrPicBtn cmdODBC
Height = 525
Left = 1560
TabIndex = 7
Top = 2400
Width = 1455
_ExtentX = 2566
_ExtentY = 926
Picture = "frmDBInfo.frx":0133
Caption = " 系统数据源"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin UserCtrProj.UsrPicBtn cmdOk
Height = 525
Left = 240
TabIndex = 6
Top = 2400
Width = 1215
_ExtentX = 2143
_ExtentY = 926
Picture = "frmDBInfo.frx":0225
Caption = " 确定"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin UserCtrProj.UsrCtrText txtPsw
Height = 375
Left = 2040
TabIndex = 5
Top = 1680
Width = 2055
_ExtentX = 3625
_ExtentY = 661
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
PasswordChar = "*"
FontSize = 8.25
FontName = "MS Sans Serif"
End
Begin UserCtrProj.UsrCtrText txtUser
Height = 375
Left = 2040
TabIndex = 4
Top = 960
Width = 2055
_ExtentX = 3625
_ExtentY = 661
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
FontSize = 8.25
FontName = "MS Sans Serif"
End
Begin UserCtrProj.UsrCtrCombo cboODBC
Height = 375
Left = 2040
TabIndex = 3
Top = 360
Width = 2055
_ExtentX = 3625
_ExtentY = 661
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ScaleWidth = 2055
ScaleMode = 0
ScaleHeight = 375
ListIndex = -1
FontSize = 8.25
FontName = "MS Sans Serif"
End
Begin VB.Label lblPsw
Caption = "数据库密码:"
Height = 375
Left = 360
TabIndex = 2
Top = 1680
Width = 1455
End
Begin VB.Label lblUser
Caption = "数据库用户名:"
Height = 375
Left = 360
TabIndex = 1
Top = 960
Width = 1575
End
Begin VB.Label lblODBC
Caption = "ODBC别名:"
Height = 255
Left = 360
TabIndex = 0
Top = 360
Width = 1455
End
End
Attribute VB_Name = "frmDBInfo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'该变量用来判断打开注册表是否成功
Dim lFlag As Long
'以下三个变量用来存储列表框以及两个文本框的对应文本内容
'用来向记录数据库设置信息的三个全局变量传递信息
'如果不是第一次运行程序,那么这三个全局变量的来源将来自
'读取注册表所获得的信息
'这三个全局变量在链接数据库的函数中起着重要的作用
Dim odbcAlias As String
Dim dbUser As String
Dim dbPsw As String
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdODBC_Click()
'该函数在第二章有过讲述
Shell ("RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL")
End Sub
Private Sub cmdOk_Click()
Dim rsLoad As ADODB.Recordset
odbcAlias = Trim$(cboODBC.Text)
dbUser = Trim$(txtUser.Text)
dbPsw = Trim$(txtPsw.Text)
'不能在数据库配置信息处输入空值
'由于数据库允许空密码,因此密码输入框允许是空
If odbcAlias = vbNullString Or dbUser = vbNullString Then
MsgBox "ODBC别名和用户名不能为空!"
cboODBC.SetFocus
Exit Sub
End If
'将数据库配置信息赋给记录这些信息的三个全局变量
'以备链接数据库之用
mOdbcAlias = odbcAlias
mDbUser = dbUser
mDbPsw = dbPsw
'数据库连接测试代码
Set gcnnConnection = New Connection
blnConnected = gADOConnection(gcnnConnection)
If (blnConnected = True) Then
'连接通过,将数据库连接信息写入注册表
lFlag = CreateKey(HKEY_CURRENT_USER, REGSUBKEY)
'调用封装好的注册表函数将信息写入注册表
Call SetValue(HKEY_CURRENT_USER, REGSUBKEY, "ODBCAlias", _
REG_SZ, odbcAlias)
Call SetValue(HKEY_CURRENT_USER, REGSUBKEY, "User", _
REG_SZ, dbUser)
Call SetValue(HKEY_CURRENT_USER, REGSUBKEY, "Password", _
REG_SZ, dbPsw)
'启动系统登录窗体
Load frmPsw
frmPsw.Show
Else
MsgBox "数据库连接失败!"
Exit Sub
End If
'如果输入信息正确登录到数据库上,则可以直接退出该窗体
'否则,提示数据链接失败之后,将不能退出窗体
'除非按取消按钮放弃登录数据库
Unload Me
End Sub
Private Sub Form_Load()
Dim i As Long
Dim values() As Variant
'利用这条语句用来将窗体定位在屏幕的中间部分
Move (Screen.Width - Me.Width) / 2, _
(Screen.Height - Me.Height) / 2
'枚举注册表中的键值,获得已经注册的ODBC的名称,添加到列表中
'这一段枚举的API函数在第二章已经有所讲述
values() = EnumValues(HKEY_LOCAL_MACHINE, _
"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources")
cboODBC.Clear
'对多位数组用LBound和UBound的方法
For i = LBound(values, 2) To UBound(values, 2)
cboODBC.AddItem values(0, i)
Next
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -