红皮书是Visual Basic 6.0数据库开发经典实例精解的简称,这本书是我们学习vb与数据库的基础。

首先给大家介绍一下数据库连接的三种方式

一、使用ADO connection对象,通过编写代码访问数据库。(如例一、例五)

二、使用ADO Data 控件快速创建数据库连接,不用编写代码即可访问数据库。(例三、例四)

三、使用数据环境设计器(ODBC数据源)创建数据库连接,不用编写代码即可访问数据库。(例二)

#实例1 “系统登录”对话框

(一)制作特点:

第一、界面简单。对话框中使用标签和文本框来显示和输入用户名和口令,用命令按钮执行验证和退出。

第二、基于数据库验证。将用户名和口令存放在数据库中,这样便于管理系统用户,与直接将用户登录信息放在代码中更具有灵活性。

(二)设计分析:

方法一、在数据库中建立一个数据表用于保存系统用户登录信息,在设计登录对话框时通过查询该数据表完成验证。

方法二、对于支持安全验证的数据库管理系统,可将系统用户定义为数据库用户。

(三)技术要领:

1.默认按钮和取消按钮
默认按钮,设置按钮的Default属性为True,此时其他命令按钮的该属性自动设置为False。按Enter键即可选择(激活它的单击事件),任何其他有焦点的控件都不接受Enter键的键盘事件,除非另外一个命令按钮已获得焦点,此时按Enter键选择有焦点的命令按钮而不是默认命令按钮。

取消按钮,设置控件的Cancel属性为True,此时其他命令按钮的该属性自动设置为False。单击它,或按Esc键或在该按钮获得焦点时按Enter键来选择它。

2.ADO Connection 对象
在访问数据库前,必须建立此连接。

3.ADO Recordset 对象

4.自定义函数过程

Function 函数名(参数 1 AS 数据类型,参数 2 AS 数据类型……)AS数据类型
……
函数名=返回值
……
End Function

注意:如果没有对函数过程指定返回值,则过程将返回一个默认值;数值函数返回0,字符串函数返回一个零长度字符串(""),Variant函数返回Empty。

(四)操作过程:

(1)创建数据库:
外接程序——可视化数据管理器——文件——新建——Microsoft Access——Version 7.0MDB

(2)设计窗体
两个标签框+两个文本框+两个命令按钮

(3)建立ADO引用
工程——引用——Microsoft ActiveX Data Objects 2.5 Library

(4)编写代码
Const MaxLogTimes As Integer = 3 '定义允许用户验证登录信息的最多次数
const与Dim相同,都是定义用的,Dim是定义变量,Const是定义常量。也就是说Const定义的不能修改MaxLogTimes的值,dim定义的可以重新赋值,拿这个例子来说,如下:

Const MaxLogTimes As Integer = 3    '缺省情况下,const是私有的相当于 Private Const MaxLogTimes As Integer = 3,此时3已被赋值给登陆次数,不可修改。
dim MaxLogTimes As Integer
MaxLogTimes = 3                               '用dim定义可修改MaxLogTimes的值。

②intResult:

例中代码如下:

Private Sub cmdCancel_Click()Dim intResult As Integer                '请求用户确认是否真的退出系统intResult = MsgBox("你选择了退出系统登录,退出将不能启动管理系统!" & vbCrLf & "是否真的退出?", vbYesNo, "登录验证")If intResult = vbYes Then End        '根据用户选择结束应用程序
End Sub

个人认为,intResult是一个赋值的中间量,如果 intResult=vbYes,则End。

**③vbCrLf:**个字符串常数,即"Chr(13) & Chr(10)"(回车符与换行符连接在一起),是换行的意思。

④Function过程:
例中代码如下:

Private Function Check_PassWord(ByVal UserName As String, ByVal PassWord As String) As ByteOn Error GoTo gpErrorDim objCn As New ADODB.Connection, objRs As New Recordset, strCn As String    Dim strSQL As String                       '建立数据库连接objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "C:\Users\TXG\Desktop\实例1.mdb"     objCn.Open                                   '执行查询命令,获得用户登录口令strSQL = "SELECT 口令 FROM 系统用户 WHERE 用户名='" & UserName & "'"     Set objRs.ActiveConnection = objCnobjRs.Open (strSQL)                     '判断有无查询结果If objRs.EOF ThenCheck_PassWord = 0                '没有查询结果,表示该用户为非法用户Else                                               '检查口令是否正确If PassWord <> Trim(objRs.Fields("口令").Value) ThenCheck_PassWord = 1            '口令不正确ElseCheck_PassWord = 2            '口令正确End IfEnd If                                           '关闭数据库连接,释放对象objCn.CloseSet objRs = NothingSet objCn = NothingExit Function
gpError:Check_PassWord = 255                '验证无法正常完成,返回错误代码Set objRs = NothingSet objCn = Nothing
End Function

Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

**⑤vbCritical:**叉号

(五)连接数据库方式:

第一种,使用ADO connection对象。
使用ADO对象来访问Access数据库,首先用Connection对象建立数据库连接,然后用RecordSet对象从数据库获得用户口令,从而验证用户登录信息是否正确。

红皮书再总结——实例一相关推荐

  1. 红皮书再总结——实例四

    实例4 分页显示记录 (一)制作特点: 第一.利用记录集的分页特性进行记录分页 第二.使用DataGrid控件的数据绑定功能显示分页后的记录 (二)设计分析: 显示当前记录页数据有两种方法: 方法一. ...

  2. EC2实例,EBS及EFS存储

    EC2实例,EBS及EFS存储 1 EC2实例基础以及创建一个Linux虚拟机 1.1 AWS EC2 云服务器 1.2 创建Linux虚拟机 2 将IAM Role赋予给EC2实例 2.1 给IAM ...

  3. python中实例方法与实例属性-Python中的类属性和实例属性以及静态方法和类方法...

    可以在Python的类定义中直接添加静态变量,如下例中的foo.此属性属于类C,可以直接通过C.foo访问,而无需实例化它.而实例属性则只存在于对象的实例中,这也就意味着,每一个不同的实例都有只属于自 ...

  4. 实例分析JAVA CLASS的文件结构

    今天把之前在Evernote中的笔记重新整理了一下,发上来供对java class 文件结构的有兴趣的同学参考一下. 学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说&qu ...

  5. 【深入Java虚拟机JVM 04】JVM内存溢出OutOfMemoryError异常实例

    说明:文章所有内容均摘自<深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)> 在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMe ...

  6. java的3个初始化_通过实例解析Java类初始化和实例初始化

    一.背景: 存在类Father和类Son,其中类Son继承了Father类. 1.父类Father代码 2.子类Son代码 *初始化包括? 成员变量赋初值.代码块.构造器 注意方法是被调用的,有人调用 ...

  7. 实例解析Java class文件格式

    1)Class文件是有8个字节为基础的字节流构成的,这些字节流之间都严格按照规定的顺序排列,并且字节之间不存在任何空隙,对于超过8个字节的数据,将按 照Big-Endian的顺序存储的,也就是说高位字 ...

  8. linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)

    摘要:oracle 图形界面配置监听,创建实例,以下都是我安装是的截图,按步骤一定可以安装成功! CentOS6.7_x64_minimal_desktop的虚拟机一台(安装oracle需要图形界面, ...

  9. es6 --- 用promise对象实现Ajax操作的一个实例

    首先回顾一下Ajax请求的步骤 var client = new XMLHttpRequest(); client.open("GET", url); client.onready ...

最新文章

  1. 第十八课.动态图模型
  2. 未来货运:无人驾驶技术和卡车司机如何配合?
  3. mysql 分表后如何扩展_mysql扩展至分库分表
  4. Python开发【Part 4】:数据类型操作
  5. HackerRank Super Six Substrings dp
  6. python functools模块(主要是为函数式编程而设计,用于增强函数功能,主要为可调用对象(callable objects)定义高阶函数或操作)
  7. Citrix VDI-in-a-Box 第二篇:架构篇
  8. webbrowser中localhost和发布的地址_004、Spring Boot中的项目属性配置
  9. 公司申请了网易企业电子邮箱,用手机端办公方便吗?
  10. android Camera 录像时旋转角度
  11. ES6新特性_Promise对象的catch方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记029
  12. python打印文档添加条码_12行代码教会你用python读excel文件,提取数据,生成条形码...
  13. webtrends之ODBC源数据获取(一)——环境准备篇
  14. 什么是Java的序列化?
  15. 【Java】绘图入门和机制,绘图方法演示(绘制坦克)
  16. 论文阅读《Fast-MVSNet: Sparse-to-Dense Multi-View StereoWith Learned Propagation and Gauss-Newton Refine》
  17. Web开发项目 # 2048小游戏
  18. 网络攻防原理与技术 第一章 课后题
  19. 远程桌面设置分辨率的步骤
  20. JavaScript鼠标点击事件

热门文章

  1. 查看表空间及增加表空间
  2. EasySwoole3 Crontab的使用
  3. freemarker模板生成pdf文件
  4. 小秘书智能app登录
  5. 纯CSS实现图片列表悬停放大效果的方法
  6. 如何在Mac和Windows PC之间无线共享文件
  7. UNITER多模态预训练模型原理加代码解读
  8. 机器学习——概念理解之IoU
  9. Vue2父传子、子传父和兄弟间互传
  10. react生命周期方法介绍