当前位置:主页 > Office办公 > 其他专区 > Access

最新发布

vba灵活调用shell及vba FSO对文件的操作
vba灵活调用shell及vba FSO对文件的操作

在调用SHELL之前,必须要通过以下步骤:(以在E:盘根目录下操作为例)  1、强制改变当前的驱动器: ChDrive "E" 2、强制改变默认的工作目录:chdir "E:/" 完成以上动作之后,再来调用E:/的批处理文件:shell "e:/234.bat" 这样执行的效果就和DOS下执行的效果一致。 原因在哪?这是因为SHELL的工作切入点是在Application的默认工作目录中,也就是说,除非在批处理中强行界定目标路径,否则,SHELL执行批处理时永远都是Application的默认工作目录下进行。 而Application的默认工作目录一般都是“我的文档”。你可以这样试验一下,在E:/创建一个批处理234.bat,内容是 dir >123.inf ,就是将dir列表写进到123.inf文件中,然后在立即窗口中shell "E:/234.bat" ,之后再用windows的搜索功能,搜索一下刚刚生成的123.inf文件,你就会发现这个文件是在“我的文档”中,而不是在E:/下,而在DOS下直接执行234.bat,则结果文件就自然在E:/下。 如果是在立即窗口中,依次执行 ChDrive "E" chdir "E:/" shell "e:/234.bat" 你再看一下,生成的文件就在E:/下了。  Option Explicit'version 0.1 2009/08/05 add Attached_SaveAsSub Attached_SaveAs()'执行前,在工具,引用中加入"Microsoft Scripting Runtime" Dim fso As New FileSystemObject Dim fldr As Folder Set fso = CreateObject("Scripting.FileSystemObject") If fso.FolderExists("d:/GDS_HUB_Report_Used_by_Rita") Then '判断是否存在这个文件夹 fso.DeleteFolder ("d:/GDS_HUB_Report_Used_by_Rita") Else MsgBox "program will create a new Folder which is named 'GDS_HUB_Report_Used_by_Rita' on the D disk!" End If MkDir "D:/GDS_HUB_Report_Used_by_Rita" 'Shell "D:/", 0 'Shell "cd 1", 1'调用shell命令前加入改变当前默认路径 ChDrive "D" ChDir "D:/1/" Shell "calc.exe", 1 Shell "C:/Program Files/7-zip/7z.exe e d:/1/1.rar", 1 Dim myOlSel As Outlook.Selection Dim j, x, cu As Integer Dim strFolder As String Dim defaultPath As String Dim YN As Integer, zipYN As Integer Dim i As Long Dim oApp As Object Set oApp = CreateObject("Shell.Application") Set myOlSel = Application.ActiveExplorer.Selection defaultPath = "D:/GDS_HUB_Report_Used_by_Rita/" If FileExist("C:/VBAtemp.ini") Then Open "c:/VBAtemp.ini" For Input As #1 Line Input #1, defaultPath Close #1 If PathExist(defaultPath) Then YN = MsgBox(defaultPath, vbYesNo, "Save file to this path ?") If YN = vbNo Then strFolder = getFOLDER() Else strFolder = defaultPath End If Else strFolder = getFOLDER() End If Else strFolder = getFOLDER() End If zipYN = MsgBox("auto unzip ?", vbYesNo, "auto unzip ?")

384 次浏览
Access如何设置透明图标按钮
Access如何设置透明图标按钮

在Access设置透明的图标按钮,会另界面显得更加专业,美观。在早期的版本中Access2003中,Access按钮图标的一般做法是在按钮的底部放置一个矩形(设置成图片),按钮显示为透明,这样就能达到图标按钮的做法了。这里再介绍一种方法是添加两个ActiveX 控件。ImageListCtrl和Toolbar  来达到图标按钮的效果,而且更加美观。动态效果图:在Access2010的版本中,这个效果就更加容易弄了只需要设置按钮的控件属性。格式:图片标题排列设为"常规";图片随意选择一个;背景样式设为"透明"

517 次浏览
使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称列表的问题
使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称列表的问题

在使用ADO的OpenSchema或ADOX 读取Access数据库里所有查询的清单时发现结果总是少了一个查询,Access查询列表中有5个,但用VBA 或VB代码读出来只有4个,少了一个  ADO读取Access数据库所有查询名的代码如下   Private Sub OpenDBSchema(FileName As String) Dim conn As New ADODB.Connection Dim mProvider As String Dim fso As New FileSystemObject If Not fso.FileExists(FileName) Then Set grid1.DataSource = Nothing Select Case LCase(fso.GetExtensionName(FileName)) Case "mdb" mProvider = "Microsoft.Jet.OLEDB.4.0" Case "accdb" mProvider = "Microsoft.ACE.OLEDB.12.0" End Select conn.ConnectionString = "Provider=" & mProvider & ";Data Source=" & FileName & ";Persist Security Info=False;" conn.Open Set grid1.DataSource = conn.OpenSchema(adSchemaTables) grid1.AllowUserResizing = flexResizeBoth End Sub  出现 的错误如下(ADO VBA代码取得的结果与Access数据库查询实际对比)  经过不断尝试与分析,终于发现,原来这个少掉的Access查询,使用了一个Access模块中的自定义函数

445 次浏览
Access或VB VBA 获取了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体
Access或VB VBA 获取了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体

Access或VB VBA 获取了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体上可使用以下的代码,要准确定位焦点1. 使用VB API SendMessage来实现简易使用SendMessage,比SetFocus更为底层,调用速度快 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WM_SETFOCUS = &H7 SendMessage childhwnd, WM_SETFOCUS, 0, ByVal 0&2. 如果 用API Setfocus也是可以的。

600 次浏览
同样的Access查询,直接找开或DAO打开结果正确,但使用ADO代码打开则结果不正确
同样的Access查询,直接找开或DAO打开结果正确,但使用ADO代码打开则结果不正确

完全一样的Access查询,直接找开或DAO打开结果正确,但使用ADO代码打开则结果不正确就是查询如果比较复杂的话,通过ADO获取这个查询的记录的时候,有些字段的值全部是空的如果用Access双击打开这个查询,里面的值又是可以计算出来的,最后我只有手工的将查询的结果转存到表里,然后读表,好坑      找了个Access实例( 问卷扣分查询 与ADO代码对比)  查询与ADO代码对比的结果

412 次浏览
Access VBA 使用API 关闭系统声音和打开系统声音的 方法
Access VBA 使用API 关闭系统声音和打开系统声音的 方法

Access VBA 使用API 关闭系统声音和打开系统声音的 方法即让整个系统静音及取消静音的代码如下   ------VBA 实现 源码-------------------- Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const BM_GETCHECK = &HF0 ' 取得复选框状态 Private Const BM_SETCHECK = &HF1 '设置复选框状态 ' Private Const BST_UNCHECKED = &00 设置复选框为未选中状态 ' Private Const BST_CHECKED = &01 设置复选框为选中状态 Private Sub Command1_Click() Dim hwnd0 As Long ' 用于记录“音量控制”程序的句柄 Shell "sndvol32.exe" ' 启动“音量控制”程序 hwnd0 = FindWindow(vbNullString, "主音量") Dim hwnd1 As Long ' 用于记录“全部静音”复选框句柄 hwnd1 = FindWindowEx(hwnd0, 0&, "Button", "全部静音(&M)") ' 复选框的类名是"Button" Dim State As Long ' 用于记录复选框状态,如果复选框处于未选中状态,则返回0,选中状态返回1 State = SendMessage(hwnd1, BM_GETCHECK, ByVal CLng(0), ByVal CLng(0)) SendMessage hwnd1, BM_SETCHECK, 1, 0 '使系统静音 SendMessage hwnd1, BM_SETCHECK, 0, 0 '使系统发音 End Sub

408 次浏览
Access 动态创建报表对象 图解教程
Access 动态创建报表对象 图解教程

有网友想根据窗体设计的内容动态创建报表?这个功能其实可以参考Office交流网Access通用开发平台。这里用到VBA代码,下面的示例是简单创建一个test report的报表  详细源码:  Sub testreport() Dim rp As Access.Report Set rp = CreateReport With rp .Caption = "test report" End With End Sub 创建效果:

Access函数的调用图解教程
Access函数的调用图解教程

Access内置函数库能轻松解决很多问题。如果没有此函数,我们可以自定义函数来处理问题。这里我们说说如何调用函数。调用内置函数和自定义函数方法是一样的。一.创建自定义函数在VBE视图下,插入-模块,新建一个模块后,键入以下函数。一个累加的函数。 Public Function leijia(n As Integer) Dim i As Integer Dim y As Long y = 0 For i = 1 To n y = y + i Next leijia = y End Function  二.调用函数1.在查询中调用函数可以在查询中直接调用,如Now(),year()等函数,也可以调用自定义函数  

598 次浏览
vb.net在内存中解压文件
vb.net在内存中解压文件

Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click'保存压缩文件Dim fso As New SaveFileDialogIf fso.ShowDialog = Windows.Forms.DialogResult.OK ThenGzipFile(fso.FileName)End If End Sub

354 次浏览
VBA及VB三种不同压缩解压组件/控件的性能对比报告(zlib.dll,info-zip,xceed zip)
VBA及VB三种不同压缩解压组件/控件的性能对比报告(zlib.dll,info-zip,xceed zip)

VB Access Excel本身没有自己的压缩和解压缩函数和组件,必须依赖于第三方的控件或动态链接库,以下是三种不同压缩组件的性能对比详细报告  VB中使用三种不同组件进行内存解压的结果分析比较本文采用三种不同软件公司的动态链接库组件,分别进行内存解压缩实验,这三种组件分别是:1、 使用zlib 软件公司的zlib.dll动态链接库组件进行内存解压2、 使用info-zip软件公司的vbuzip10.dll(也就是unzip32.dll)动态链接库组件进行内存解压3、 使用xceed软件公司的xceed zip compression library V5.0版本的xceedzip.dll动态链接库组件进行内存解压利用上述三种不同软件公司的动态链接库组件,对解压前大小为229046805字节的压缩文件进行解压实验,实验结果如下:1、采用三种不同软件公司的动态链接库组件分别进行内存解压,三次内存解压所用时间(毫秒)如下:软件名称 第一次 第二次 第三次 平均时间

369 次浏览
共计204条记录 上一页 1.. 5 6 7 8 9 10 11 ..21 下一页