网站首页 > 技术文章 正文
hi,大家好呀!
又到了一周一更新的日子了,这周我们来更新点啥呢?
话说,最近几次我们都更新了与excel相关的功能,那今天我就再来更新一篇处理excel的文章,那我们就来看看具体的功能!
01
准备导出的表/查询
在导出前,我们先要准备一个表,这次我们直接把之前用过的那张表T_Product,这张表我们在做导出时,添加合计行用过,如下图:
02
创建窗体
接着,我们来创建一个窗体,在窗体放上两个控件,一个文本框,一个按钮,如下图:
03
添加代码
接着,我们就可以来添加代码了:
Private Sub btnExport_Click()
On Error GoTo Err_ExportToExcel
Dim strName As String
Dim objExcel As Object
Dim objBook As Object
Dim objSheet As Object
Dim rst As Object
Dim objExcelQuery As Object
If IsNull(Me.txtPassWord) Then
MsgBox "请先输入密码!", vbCritical
Me.txtPassWord.SetFocus
Exit Sub
End If
strName = "产品.xlsx"
'使用文件对话框取得另存为的文件名
With Application.FileDialog(2) 'msoFileDialogSaveAs
.InitialFileName = strName
If .Show Then
strName = .SelectedItems(1)
If Not strName Like "*.xlsx" Then strName = strName & ".xlsx"
Else
strName = ""
End If
End With
If strName = "" Then Exit Sub
DoCmd.Hourglass True
Set objExcel = CreateObject("Excel.Application")
Set objBook = objExcel.Workbooks().Add()
Set objSheet = objBook.Worksheets("sheet1")
Set rst = CurrentDb.OpenRecordset("T_Product")
Set objExcelQuery = objSheet.QueryTables.Add(rst, objSheet.Range("A1"))
With objExcelQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
objExcelQuery.Refresh
rst.Close
objBook.Sheets("sheet1").Protect Password:=Me.txtPassWord '保护sheet表
objBook.Worksheets("sheet1").SaveAs strName
If MsgBox("数据已导出,是否打开并查看?", vbQuestion + vbYesNo) = vbYes Then
objExcel.Visible = True
Else
objBook.Saved = True
objExcel.Quit
End If
Exit_ExportToExcel:
Set objExcel = Nothing
Set objBook = Nothing
Set objSheet = Nothing
Set rst = Nothing
DoCmd.Hourglass False
Exit Sub
Err_ExportToExcel:
If Err = 70 Then
MsgBox "无法删除文件 '" & strName & "',可能该文件已被打开或没有权限。", vbCritical
Else
MsgBox Err.Source & " #" & Err & vbCrLf & vbCrLf & Err.Description, vbCritical
End If
Resume Exit_ExportToExcel
End Sub
04
运行测试
最后,就是运行测试了,我们来看一下效果。
在图中我们可以看到,导出后sheet1是有密码,如果直接修改是会有报错的,那说明我们成功了!
其实就是比我们导出的代码多了这一句,是不是非常的简单!
objBook.Sheets("sheet1").Protect Password:=Me.txtPassWord
好了,大家快去试一下吧!如果大家觉得我写的还行,不如给我一个小爱心吧,支持一下我!啵~~~
- 上一篇: 个人邮箱地址格式,如何能够正确的书写?
- 下一篇: Qt中绘图框架介绍 qt 绘制
猜你喜欢
- 2024-12-24 Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户+密码登录界面
- 2024-12-24 家庭收支理财管理系统 Access数据库系统课程设计制作实例
- 2024-12-24 Qt 2D绘图:图形视图框架的事件处理与传播
- 2024-12-24 MFC界面库BCGControlBar v32.1 - 可视化管理器和主题升级
- 2024-12-24 DJYGUI系列文章九:GDD消息系统 gd信息
- 2024-12-24 Qt设备识别(简单的密钥生成器) qt设备管理系统
- 2024-12-24 Access开发的《财务经济管理系统》
- 2024-12-24 初级开发人员告诉我:OO 设计模式太复杂而且没用
- 2024-12-24 从零开始学Qt(89):UDP单播和广播
- 2024-12-24 Qt入门阶段之事件 qtc间期延长的临床意义
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)