当前位置:主页 > Office办公 > Access参数查询

Access参数查询

Access参数查询实例教程
Access参数查询实例教程

关于查询的最好的部分是可以一次又一次地保存和运行相同的查询,但是当您通过只更改条件来一次又一次地运行相同的查询时,则可以考虑查询来接受参数并按指定参数值来查询。现在通过创建一个简单的例子来看看一个参数查询。打开数据库,然后在创建表 选项卡中选择:查询设计。双击Projects表并关闭显示对话框。选择想要查看的字段作为查询结果,如以下屏幕截图所示。在查询设计网格中,在ProjectStart列的条件 行中,键入[输入项目开始时间], 字符串[输入项目开始时间] 是输入参数的提示。方括号表示要查询输入,而文本是输入项目开始时间是参数提示信息。让我们现在运行查询,将看到以下提示。现在输入下面的日期,如以下屏幕截图所示 -假设Projects 表中有以下数据 -那么执行查询,将得到以下数据 -  因此,将看到2017年12月30日开始的项目的详细信息。 转到“设计视图”并再次运行查询,输入项目开始时间:2017-12-27。

1210 次浏览
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 次浏览
使用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 次浏览
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 次浏览
同样的Access版本生成的mde在另一台电脑出现不兼容,无法打开的解决办法
同样的Access版本生成的mde在另一台电脑出现不兼容,无法打开的解决办法

最近有一个客户在使用Access通用开发平台生成的MDE,在某些电脑总是出现错误,无法打开,或打开提示宏错误或VBA程序出错。但把Access 源文件mdb复制到这台出错的电脑重新生成mde,则打开正常。即使用同样的Access相同的版本生成的mde,在另一台电脑同样的Access版本,打开出错,也就是mde不兼容通过以下几种方法来检查都发现无法解决,即使重新Office access也不能解决。      

725 次浏览