电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 操作系统-> FreeBSD教程
excel、access、vb的结合应用_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
----微软公司的Office系列办公软件相信已是众所周知,其中Excel强大的统计制表功能、Access功能完备的数据处理能力深受众多用户所喜爱。VisualBsaic更是微软公司又一有力的产品,它简单易学,在Windows编程中的应用十分广泛。本文通过介绍数据处理及复杂表格的打印,来讨论VB与Excel及Access的结合运用。

----由于笔者所在的公司员工众多,在进行职工养老保险缴费的计算工作时,若使用劳动局编制的软件(用Foxbase编写),无论是在管理或维护方面均显得力不从心。于是在公司领导的强烈要求下,决定由笔者构思重新编制。基本思路是:1.将所有员工资料输入Access进行处理,以便于维护。2.在Excel中预先制成有表头的空表(Access相对欠缺处理复杂表格的能力),对需要进行金额汇总或其他运算的单元格可直接输入公式。3.在VB中编写程序代码,从Access中提取数据填入Excel对应表格相应的单元格,并输出至打印机。

----部分窗体及源程序代码如下:

----1.程序主模块

----定义Excel、Access对象变量,显示系统启动画面,进入系统主程序界面。强调一下,在编写程序之前须加入对Excel及Access库函数的引用,具体操作是:选择菜单栏工程\引用…,将可使用的引用列表框内MicrosoftAccess8.0ObjectLibrary和MicrosoftExcel8.0ObjectLibrary两项前的复选框标为选中,按"确定"返回。

mdsMain.bas
定义数据库记录集及Excel对象变量
PublicexAsNewExcel.Application
PublicexwbookAsExcel.Workbook
PublicexsheetAsExcel.Worksheet
PublicmydatabaseAsDatabase
Publicmyrecordset1AsRecordset
[定义记录集]
……
……
PublicOptAsInteger报表选项
[Opt为frmSelreport.frm返回值]
PublicisYNAsBoolean
SubMain()
LoadfrmSplash
frmSplash.Show
frmSplash.Label2.Caption=
"系统正在加载Access数据库..."
  Setmydatabase=OpenDatabase("c:\sbda\sbda.mdb")
Setmyrecordset1=mydatabase.OpenRecordset
("报表打印(一)")
[此处对记录集赋值]
  ……
  ……
frmSplash.Label2.Caption=
"系统正在加载Excel电子表格..."
Setex=CreateObject("excel.application")
Setexwbook=ex.Workbooks.Open("c:\sbda\sbda.xls")
LoadFrmInput   将数据输入窗体加载到内存中
UnloadfrmSplash
LoadFrmMain    将主程序界面加载到内存中
EndSub

----2.报表打印模块
----其中ExcelDoForVB1()是一子程序,由prnProess()调用,作用是从Access中提取所需数据资料,填入Excel对应工作表(Worksheet)的相应单元格(Cells)中,然后打印已填入数据的表格;prnProess()则负责实现对VB通用对话框(CommomDialog)中打印功能的控制。

mdlPrint.bas
OptionExplicit
定义循环计数变量
PublicnRowAsInteger,nColAs
Integer,nBtoEAsInteger
定义变量接收打印对话框返回值
PublicBeginPage,EndPage,NumCopies
程序运行时需进行判断的各种标志
Publicnflag,Flag,ifNum
数据记录集中指针移动数
PublicPageNAsInteger,nAsInteger
bar1为进度条
Publicbar1AsObject

SubprnProess()      
控制通用对话框打印功能
  Setbar1=FrmPrint.PgsBar1 进度条
  OnErrorGoToerrhandle:
  IfFlag=0Then   当打印对话框中选"全部"时
    SelectCaseOpt  选择需要打印的表格
      Case1
        nflag=1
        myrecordset1.MoveFirst
        myrecordset1.MovePrevious
        PageN=1
        DoWhilenflag=1
          CallExcelDoForVB1 
数据填入Excel单元格打印
          PageN=PageN 1
        Loop
      Case2
      ……
      ……
    EndSelect
  Else
    IfFlag=2Then  
当打印对话框中选"页"时
      IfEndPage-BeginPage=0Then
        ifNum=0
      Else
        IfEndPage-BeginPage>0Then
          ifNum=1
        Else
          ifNum=2
        EndIf
      EndIf
      SelectCaseifNum
        Case2
          ExitSub
        Case0
          SelectCaseOpt  
选择需要打印的表格
            Case1
myrecordset1.MoveFirst
n=(BeginPage-1)*
(49-4 1)-1
myrecordset1.Moven
PageN=BeginPage
CallExcelDoForVB1
 数据填入Excel单元格并打印
            Case2
            ……
            ……
            EndSelect
        Case1
          SelectCaseOpt   
选择需要打印的表格
            Case1
myrecordset1.MoveFirst
n=(BeginPage-1)*
(49-4 1)-1
myrecordset1.Moven
PageN=BeginPage
FornBtoE=BeginPageToEndPage
  CallExcelDoForVB1 
填入Excel单元格并打印
  PageN=PageN 1
NextnBtoE
            Case2
            ……
            ……
            EndSelect
      EndSelect
    EndIf
  EndIf
  FrmMain.Visible=True
  ExitSub
errhandle:
  FrmPrint.Visible=False
FrmMain.Visible=True
EndSub

----注意,下段仅通过ExcelDoForVB1()对"报表(一)"的处理,来说明数据填入Excel并打印的整个过程。

SubExcelDoForVB1()     打印报表(一)
  FrmPrint.Visible=True
  Setexsheet=exwbook.Worksheets("sheet1")
  ex.Sheets("Sheet1").Select
  ex.Range("A4:U49").Select
  ex.Selection.ClearContents
  ex.Range("A4").Select
  bar1.Min=0      
  bar1.Max=45     
  FornRow=4To49
  bar1.Value=nRow-4  进度显示栏进程
    myrecordset1.MoveNext
    Ifmyrecordset1.EOFThen
      nflag=0
      ExitFor
    EndIf
    FornCol=1To21
      exsheet.Cells(nRow,nCol)=
myrecordset1.Fields(nCol-1)
    NextnCol
  NextnRow
  exsheet.Cells(52,21)="第" CStr(PageN) "页"
  FrmPrint.Visible=False
  bar1.Value=0
ActiveWindow.SelectedSheets.PrintOutCopies:=NumCopies
EndSub

----虽然本文针对的是大多数已熟练掌握数据库技术,且精通编程之道的朋友们。但笔者认为仍有必要提一提将数据输入Access的过程,因为编出来的软件更多是面向各类普通用户,对他们来说最要紧的是好用,而其间的一系列关联并不想深究。所以设计一个好的输入界面十分有必要,在设计时可以运用VB提供的Data控件,当然若是考虑性能的话还可以用代码直接操纵数据。关于如何使用Data控件访问数据库,在VisualBasic的联机手册(Onlinebook)中有很详细的说明,此处不再赘述。
----文中的所有程序在VisualBsaic5.0中文专业版及Office97中文版中调试通过。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·photoshop鼠绘一个鲜脆欲滴的苹果_photoshop教程
·简单计算函数的编写过程_visualbasic教程
·利用api函数播放wav声音文件_visualbasic教程
·excel、access、vb的结合应用_visualbasic教程
·一个封装了wininetapi函数的类(cwininetconnection)_visualbasic教程
·vb6.0初学者的10个编程小技巧_visualbasic教程
·vb图像处理之图像的色彩纠正_visualbasic教程
·vb图像处理之铅笔画算法和木雕算法_visualbasic教程
·vb利用高级音频函数编写多媒体播放器_visualbasic教程
·visualbasic可以产生四角形以外其他形状的form_visualbasic教程

最新文章
·phpmyadmin安装注意事项_php技巧
·用photoshop帮漂亮mm肖像照片美白牙齿_photoshop教程
·photoshop为传统彩色照片底片翻拍图校色_photoshop教程
·zend公司推动中国开源php发展_php文摘
·教你制作可以随身携带的freebsd系统_freebsd教程
·将心仪的图片定义为photoshop填充图案_photoshop教程
·忘记windows xp登入密码的9种解决办法_windows xp
·photoshop快速消除肖像照片黑眼圈_photoshop教程
·windows xp中的秘密武器_windows xp
·匿与无形:windows xp系统隐藏技巧大放送_windows xp


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号