问题的提出
在企业网站的开发维护中,经常要把企业的各种信息,例如字处理文件、电子表格、图形、网页等文件装入SQL数据库(SQLServer7.0)中,然后在企业网站上发布。这项工作非常费时费力,操作起来比较繁琐,特别是每日都有大量信息录入及发布时,更是如此。能否建立一个应用界面,能够搜索指定目录下的各类文件,并将数据显示出来,经过选择后装入SQL数据库,并随即发布到企业网站上,而且对已入库的信息数据要随时编辑、修改、删除。根据这个问题,我们在开发企业网站的过程中采取了一些方法,使这个问题得到了较好的解决。现将解决这一问题的思路和程序编制的实际步骤发表出来,供有兴趣的同行参考。
解决问题的思路
1. 采用Web浏览器控件作为信息的录入窗口。
2. 采用Access2000数据项目作为客户/服务器模式,用于SQL数据库的用户界面。
3. 采用Access2000数据访问页作为网站发布载体,结合报表快照控件即时发布。
实际操作步骤:
1. 建数据项目
在Windows 2000/NT系统中,可按以下步骤创建:
* 打开Access数据库窗口,选文件选单中的“新建”命令,创建一个“项目(新建数据库)”,输入文件名:adp1。
* 在“Microsoft Sql Server数据库向导”中,选Sql Server数据库系统名:sqlser,“登录ID”:sa,“密码”:为空,“指定SQL Server数据库名”:adp1sql,单击“完成”即可进入“adp1:数据库”窗口
* 测试连接。 列名 数据类型 长度 精度
Xh int 4 10
Lb char 10 类别
Ml char 30 目录
wb ntext 16 文本
Rq datetime 8 日期
Tm char 30 题目
Bg image 16 表格
在Windows98系统中,按以下步骤创建项目连接。
* 用SQL Server客户网络实用工具(client network utility):选“命名管道(named pipes)”。
* 打开默认网络库:选“TCP/IP”
* 添加网络配置库:输入有“Sql server 7.0“的计算机名作为网络别名。
* 验证:数据连接特性。
2. 使用设计器创建表
* 在“adp1:数据库”窗口的表页中,“使用设计器创建表”创建一个新的表,“选择表名”:table1.
* 选“table1:表”输入下表字段:
3. 视图的设计
为了在数据访问页的题目“下拉列表”中指定不同类别的文件,要分别建立两个分类查询视图(可按文件的类别创建多个视图)。创建过程(略)。
4. 创建用户界面窗体
* 在“adp1数据库”窗体页中“使用向导创建窗体”,创建一个新的窗体。在窗体向导对话框中将“表/视图”选“表:table1”;“选定的字段按“〉〉”键全部选定,单击“完成”。
* 在“table1:窗体”的“设计视图”工具箱中选“绑定对象框”,在“设计视图”窗口画一个合适的方框,插入“绑定对象框:OLE绑定”控件。在该控件“属性”的“控件来源”设为:BG。其它“属性”值为默认设置。
* 在窗体上添加以下控件和相应的“事件过程”代码:
①在“设计视图”工具箱中,选“组合框”控件使用“组合框向导”创建“组合框0”,“选定字段”为ml。其它“属性”为默认设置。
②在“设计视图”工具箱中,选“组合框”控件使用“组合框向导”创建“组合框1”,“选定字段”为tm。
③在“设计视图”工具箱中,选“命令按钮”控件,使用“命令按钮向导”创建“浏览”按钮。“标题”为:浏览。
* 使用“命令按钮向导”创建“查找文件”按钮,“标题”为:查找文件。在该按钮“单击”“事件过程”中输入代码:
Private Sub 命令17_Click()
Set fs = Application.FileSearch
With fs
.LookIn = "e:\sfong" '用户自定义路径
.FileName = "sf*.*" '用户自定义文件类型
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
组合0 = .FoundFiles(i)
Me.bt = .FoundFiles(i)
DoCmd.GoToRecord , , acNext
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub
* 使用“命令按钮向导”创建“数据发布”按钮,“标题”为:数据发布。在该按钮“单击”“事件过程”中输入代码:
Private Sub 命令27_Click()
Dim intOutputTO As Integer
Dim strName As String
Dim strPath As String
Dim strRecipName As String
Dim strOutputFormat As String
DoCmd.Hourglass True
strOutputFormat = "Snapshot Format"
strPath = "e:\inetpub\wwwroot\xlgs\xls\table3.snp"
strName = "table4"
DoCmd.OutputTo acOutputReport, _
strName, strOutputFormat, strPath
DoCmd.Hourglass False
End Sub
* 分别在wb、tm、bg“文本框”“属性”,“双击事件”“事件过程”代码窗口中输入代码:
Private Sub wb_DblClick(Cancel As Integer)
DoCmd.RunCommand acCmdPaste
End Sub
* 在“table1:窗体”设计视图中,将各对象控件调整到合适位置。
5. 报表的设计
为了在数据访问页(DAP)发布SQLServer Activex控件数据,要使用报表快照控件。因此,要建一个报表,以便形成报表快照文件使用。创建过程(略)。
6. 数据访问页的设计
由于数据浏览和操作上技术实现的要求,我们把文本数据访问页和Sql ActiveX数据访问页分别设计。设计文本数据访问页遵循如下步骤:
* 在“adp1:数据库”窗口上,选数据访问页“使用向导创建数据访问页”。在“数据访问页向导”对话框中设定:“表/视图”为:视图1;“选定的字段”为:XH,WB,“请为数据页指定标题”为:文本数据浏览。选定“修改数据页的设计”,单击“完成”。
* 在“page1:数据访问页”“设计视图”中,选定“对象:XH”,单击右键在快捷选单中选“升级”,以建立分组浏览。
* 在“页眉:Table1-xh”空间中添加一个“下拉列表”控件,在“组合框向导”对话框中选“用组合框来查询表或视图中的数值”,“选定字段”为:tm。在该组合框“属性”中“ListRowSourse”设为记录集:dbo_视图1;“ListDisplayfield”设为:tm1:tm;“ListBoundField”设为:tm2:tm。
* 在选单“视图”中选“排序与分组”条。在“排序与分组”对话框中,“分组筛选控件”设为:下拉列表0;“分组筛选字段”设为:组tm 。
* 在“页眉:Table1-xh”空间中添加一个“滚动文字”控件,在其“属性”“controlsource”中设为:组tm1:tm。
* 选中“对象:xh”,在其“属性”中“display”设为:none,删去“对象:Table1-xh展开”控件,调整“页眉:Table1”中的“对象:wb”页,使其占满一页。设计ActiveX数据访问页(我们称为表格数据访问页)应遵循以下步骤:
* 在“adp1:数据库”窗口“对象:页”页面中,使用“在设计视图中创建数据访问页”。在该“设计视图”上选“字段列表”工具按钮,“在字段列表”对象框中展开表:Table1,将字段xh拖至“页眉:Table1”空间中。
* 添加“下拉列表0”控件,在“组合框向导”对话框中选“用组合框来查找表或视图中的数值”,“选定”字段为:tm 。在该组合框“属性”中“ListRowSourse”设为记录集:dbo_视图2;“ListDisplayfield”设为:tm1:tm;“ListBoundField”设为:tm2:tm。
* 在选单“视图”中选“排序与分组”条。在“排序与分组”对话框中,“分组筛选控件”设为:下拉列表0;“分组筛选字段”设为:组tm 。
* 添加“滚动文字1”控件,在其“属性”的“contralsource”中设为:tm。
* 在“page1:数据访问页”设计视图工具箱中选“其它控件”,在控件的下拉列表中选择“snapshot viewer control 9.0”控件,单击选中。在“页眉:Table1”的空间上画出一个合适的方框,插入“snapshot viewer control 9.0”控件。选中该控件,单击右键选择“snapshot viewer控件对象”“属性”,在“属性”对话框中,“快照路径”设为: \\www\ inetpub\ wwwroot\ xlgs\ xls\ table3.snp。在该控件“属性”中,“id”设为:snapshotviewer1;“childlabel”设为:snapshotviewer1,单击“确定”。
* 在页“page1:数据访问页”设计视图工具箱中选定“命令按钮”控件,添加“浏览”命令按钮。在该命令按钮“属性”的“id”设为:浏览。选中该命令按钮单击右键,选择“Microsoft 脚本编辑器”。在脚本编辑器窗口的“脚本大纲”中展开“浏览”对象,在“onclick”事件代码相应位置输入如下代码:
〈SCRIPT event=onclick for=命令1 language=vbscript〉
〈/SCRIP〉
返回