532628838
圣骑士
圣骑士
  • 注册日期2011-06-10
  • 发帖数98
  • QQ
  • 火币517枚
  • 粉丝77
  • 关注39
阅读:5024回复:0

[ACCESS]建立、改变及重构Access数据库的方法

楼主#
更多 发布于:2011-08-01 17:25
  由vb提供的datamanager对于开发人员来讲并不是一件强大的工具。对于那些没有装access数据库的人来说,在开发时建立.改变或重构数据库,以及载入/重载表单都是一件痛苦的事。此外datamanager不能让我们打印数据库的结构。  

  让我们编一个小程序实现上述功能,然后工程结束后把它抛弃.  

  首先可以用一个以逗号分隔的文本文件来储存表结构,如下面这个人员表。  

    lpersonid,long,,person’s id  
    spersonfirstname,text,20,person’s first name  
    spersonlastname,text,20,person’s last name  
    bisafunperson,boolean,,invite to a party?  
    itypeofjob,integer,,0=none 1=manual 2=office 3=programmer etc.  
    iage,integer,,person’s age  

  该表有六列,每列独占一行。每行中用逗号分隔下列各项:字段名.字段类型.字段长度(如果不是字符型字段,就留空,仅用逗号分隔)及字段描述。如果你想在字段描述中使用逗号,你可以不用逗号分隔各项,  
换成tab分隔。  

  一个通用程序能读取这些文件并根据它们建立起数据库。这种方法,连同一些通用的导入/导出程序能大大加快程序开发的速度。举例 来说,你不能在dm中删除一个表的一列,但通过删除csv文件中对一列的定义,然后重新运行构建数据库的程序,你就能轻松做到这一点。  

  如果你想打印出数据库的结构,方法也很简单:用excel读csv文件,再将其粘贴到word中,这样你就可以打印出整个数据库的结构了。  

下面是程序代码:  

    sub createtable (sdatabasename as string, scsvfilename as string,  
    stablename as string)  
    dim itemp as integer  
  ’将控制权交还给操作系统,使其在创建数据库的同时能运行其它程序-别让你的计算机闲着!  
    itemp = doevents()  
  ’创建一个300x3数组  
    redim stables(300, 3) as string  
    dim sdatatypeline as string  

  ’ 读取csv文件,并将字段定义保存在数组中  
    call readtabledefinition(scsvfilename, stables())  

    dim tbl as new tabledef  
    dim fld as field  

  ’打开数据库  
    dim dbpersons as database  
    set dbpersons = opendatabase(sdatabasename ; ".mdb", true)  

  ’记录下新的表单名  
    tbl.name = stablename  

  ’增添第一个字段  
    set fld = new field  
    fld.name = stables(1, 1)  
    fld.type = getfieldtype((stables(1, 2)))  
    fld.size = val(stables(1, 3))  
    tbl.fields.append fld  
    dbpersons.tabledefs.append tbl
’增加其它的字段  
    dim inextcol as integer  
    inextcol = 1  
    do while true  
    set fld = new field  
    inextcol = inextcol + 1  
’到了表定义的底部则退出  
    if stables(inextcol, 1) = "***end***" then  
    exit do  
    end if  
    fld.name = s


喜欢0 评分0
游客

返回顶部