VB6基本数据库应用二:建立数据库

这是同样系列的第二篇,上一篇在:http://www.jb51.cc/article/p-adrbyezm-zx.html


建立数据库

前文再续,书接上一回。这一章将会讲述如何在Access中建立数据库。我将同时讲述Access2003和2013两种版本的操作方法。


先来讲如何创建一个数据库,当然,创建一个数据库的操作自然也包括了创建表,增加字段这些操作。


先说2003的操作方式:


选择【空数据库...】,然后在弹出来的【文件新建数据库】对话框中选择好路径,填好文件名,单击【创建】就有一个新的数据库文件了。

这时候会弹出一个对话框,如下图:


如图在左边的对象那一列选择【表】,右边选择【使用设计器创建表】,然后按左上角的【打开】,就会打开表设计器窗口,如下图:


至今为止,我都没有说要设计一个什么程序来作为示例教导大家如何使用数据库,既然前面以StudentID字段作为例子,就设计一个学生管理系统为例吧。那么在【字段名称】的第一行处输入StudentID(即学生编号),我之前说过,字段名等不要用中文,所以这里用的是英文。在【数据类型】的第一行处选择【数字】(虽然选择【自动编号】会让我们后面的程序更方便,不过为了说多一些知识,就让我绕个弯子吧),之后下面的常规那里原本是空白的,就会变成如图所示的样子。


下面我们来研究一下下面的【常规】选项卡有什么用。对于我们来说,一般有用的是【字段大小】,【小数数位】,【必填字段】和【索引】这四个。以次来说。


【字段大小】指的是每一个记录中这个字段所能存储的数据大小,对于现在的【数字】,当然指的就是数字的大小了。一般有【字节】,【整形】,【长整型】,【单精度型】,【双精度型】,【同步复制ID】,【小数】。当我们在选择【字段大小】的时候,右边的蓝色字提醒我们最常用的是【双精度型】和【长整型】。各种类型的存储范围和VB大概对应的数据类型如下表:

类型 存储范围 VB对应类型
字节 保存从 0 到 225(无小数位)的数字。 Bety
整形 保存从 -32,768 到 225(无小数位)的数字 Integer
长整型 (默认值)保存从 -2,147,483,648 到 2,647(无小数位)的数字。
Long
单精度型 保存从-3.402823*(10^38) 到-1.401298*(10^-45 )的负值,
从 1.401298*(10^-45) 到 3.402823*(10^38) 的正值。
Single
双精度型 保存从–1.79769313486231*(10^308) 到–4.94065645841247*(10^324)的负值,以及从4.94065645841247*(10^324) 到1.79769313486231*(10^308) 的正值。
Double
同步复制ID 全局唯一标识符 (GUID)(GUID:在 Access 数据库中,一种用于建立同步复制唯一标识符的 16 字节字段。GUID 用于标识副本、副本集、表、记录和其他对象。在 Access 数据库中,GUID 是指同步复制 ID。)
String
小数 28位的小数
Double

上面的这些数据可以在选择【字段大小】的时候按下F1来查看(注:对于【小数】这个类型的说明,原文是这样表述的“存储从 -10^38-1 到 10^38-1 范围的数字 (.adp);存储从 -10^28-1 到 10^28-1 范围的数字 (.mdb)”它的表达方式-10^38-1 之类的很令人费解,既不是-10的38次方减一,也不是-10的38-1次方,无论哪一个都是很小的负整数,不是小数。所以取了原文的小数数位作为这里的描述)那么现在StudentID作为一个ID,ID可能多达10多位,就只能取【双精度型】了,【长整型】达不到那么大的数。但是对于小的内容,我们就应该设置为范围小的数据类型,这样数据库引擎对他的处理会更快,消耗的内存也更少。


【小数数位】从字面上理解就可以了,从上面的描述中可以知道,只有【单精度型】,【双精度型】,【小数】这三种类型设置这个属性才是有意义的。【小数】类型的有28位小数,无整数部分,单精度类型的是7位小数,双精度的是15位小数,如果设置了超过该类型所承受的小数数位,则还是按照这个类型所能支持的最大小数数位来计算。这里的StudentID就设置为0好了。


【必填字段】就是说明在一个记录中这个字段是否是必须填写的,这个属性只有两个选择,要不就【是】,要不就【否】,会中文的都知道是什么意思了,不解释了。这里的StudentID就设置为【是】好了。


还有一个就是【索引】,可以选择的是【无】,【有(无重复)】,【有(有重复)】。有索引可以加快搜索和排序的速度,但是可能降低更新数据的速度。一般我都选有,而有重复和无重复的差别就是是否允许字段中出现重复的数据,这里的StudentID就设置为【有(无重复)】好了。


最终的设置如下:


然后我们回到【字段名称】的第一行,单击鼠标右键,选择【主键】(如下图)。虽然定义主键不是必须的,但是还是推荐这样做,定义你认为最重要的字段为主键即可,这里当然就是StudentID了。


说了那么多,我们继续表的创建。在【字段名称】那一栏的第二行,我们输入StudentName,别简单地输入Name就算数了,虽然它允许(在2013的版本里会发出警告的),但是在SQL语句和数据库引擎里是保留字,有其独特的用途,所以不要直接使用保留字来做字段名,表面和数据库名。Access的保留字列表:http://wenku.baidu.com/view/f09e8be3172ded630b1cb664.html


在数据类型的那一列的第二行选择【文本】,在下面【常规】选项卡中修改如下的属性为表中的值:

属性名 修改之后的值
必填字段
允许空字符串
索引 有(有重复)

最后输入好的表就有两个字段了,以后要新的字段的时候在新加也是可以的。


最后直接点击表编辑器右上角的关闭(上图红色框),在弹出的时候保存表的更改那里选择是,在随后的表另存为中修改表名称为Student并确定。


关闭表编辑器之后,我们又回到了最初保存数据库之后的窗口,在左边对象那一列选择【表】,你就会发现下面多了一个名为Student的表,就是我们刚才建立的(如下两张图的第一张),要想输入数据,双击它就会出来一个窗口(如下两张图的第二张)



对于2003数据库的创建,就是怎么多,最后在文件菜单按一下保存就可以关闭Access了。

对于2013版本的Access,他的创建显得没那么麻烦,其实要做的工作还是怎么多,只不过都和2003版本的很相似,就是操作的界面不同罢了。下面来说一下:


首先在启动Access 2013之后,我们会看到如下的新建界面

选择空白桌面数据库,弹出如下的窗口。这里要留意了,Access 2013默认创建拓展名为*.accdb的新型数据库文件,我们方便操作的是*.mdb文件,两种文件不兼容的。所以我们单击红色框的选择路径按钮,在修改数据库的文件名和路径的同时修改格式,如下图:


在弹出的文件新建数据库对话框里修改文件名和路径,留意蓝色框中选择的文件版本是2002-2003数据库,如下图:

单击确定之后就会回到刚才的新建对话框,在那里单击创建(如上两张图)就可以了。

完成之后我们看到的是如下的界面:


你会发现2013用起来真是清爽。可以看到最左边的侧边栏显示的是当前的数据库有哪些表。这里的表1是默认新建的。右边是编辑表数据和字段的视图。在没有数据之前可以通过那个“单击以添加”来添加字段,ID这个字段是默认自动添加的,在添加了自己需要的字段之后如果不需要他可以删掉(之后再说明怎么删,因为ID这个是默认的主键,不能在当前的视图下删除)。照样,我们单击“单击以添加”来添加字段,单击之后会出来一个菜单,让我们选择字段的数据类型。我们选择【数字】(如下图)


然后输StudentID,之前2003版本中的【常规】选项卡里的属性已经挪到了界面的上方,如下图的红色框区域:


数据类型,必须,唯一,已索引是2003版本中介绍的三个属性中的两个,还有一个是字段大小,要在别的视图才能设置,下面和怎么删掉ID字段,设置新的主键一起说。

编辑表数据和字段的视图上面的的【表1】那里(也就是ID上面的那个)单击右键,选择【关闭】。这时候他会提示你是否保存更改,单击是之后会出现【另存为】对话框,在表名称那里输入Student,这些操作都是和2003版的很相似的。


在左边侧边栏的【表1】那里单击右键,选择【设计视图】,如下图:


打开之后出来的是我们在2003版本看得很熟,我花了很大的篇幅去说的【表编辑器】,几乎一模一样,只不过2013版本的表编辑器不是一个窗口,而是一个选项卡,跟编辑表数据和字段的视图一样。如下图:


留意上图的红色框,里面有一个钥匙的图标,那就是主键的符号,正因为ID字段是主键,所以不能随意删掉,我们在第二行,StudentID字段单击右键,选择【主键】,这时候变成第二行前面有了钥匙的符号,第一行没有,也就是说主键已经从ID这个字段变为StudentID这个字段,这时候我们就可以在第一行ID那里单击右键,选择【删除行】删掉ID这个字段了。而下面的【常规】选项卡也和2003版本的一样,要修改字段大小可以在这里修改。同样地添加StudentName字段,同样不要只用Name这个名字,用2013版本的朋友注意参见上面的2003的介绍,修改好【常规】选项卡里需要修改的属性。


最后就是按Ctrl+S保存了,或者按文件菜单保存,都一样。那么下一章将会讲述数据库的连接。未完,待续。


下一章:连接数据库与SQL语句的Select语句初步 http://blog.csdn.net/jiluoxingren/article/details/9474661

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")