access 2007 vba 开发中学到的知识(一)
使用ado连接本身的数据库,需要先创建一个 adodb.connection的连接对象
Set cn = CreateObject("ADODB.Connection")
数据库的提供者
cn.Provider = "Microsoft.ACE.OLEDB.12.0"
CurrentProject.Path是取得当前access数据库程序所在的路径
strCn = "Data Source = " & CurrentProject.Path & "\Accessdatabase.accdb;Jet OLEDB:Database Password= "
打开连接
cn.Open (strCn)
创建recorderset,用来接收查询到的数据
Set rs = CreateObject("ADODB.Recordset")
需要执行的检索sql文
rs.Open "SELECT * FROM tablename " & wherecondition, cn, 3, 1
rs.fields() 取得表中字段的值,列头的序号是从0开始的,这个例子中我写的是1,也就是表格中的第二列
kkn = rs.fields(1) 删除的sql文
使用连接的execute方法,第一个参数是sql文,第二参数是删除的记录条数,如果成功则返回1,失败返回0
cn.Execute "DELETE FROM tablename WHERE name = '" & Value & "' AND birthday = CDate('" & Value & "') ", cnt 更新的sql文
参数同上,cnt是返回更新的记录条数,1是成功,0是失败
cn.Execute “UPDATE tablename SET 更新字段=更新的值 WHERE name = '" & Value & "' AND birthday = CDate('" & Value & "') ", cnt 插入的sql文
参数同上,cnt是返回插入的记录条数,1是成功,0是失败
cn.Execute ”insert into tablename values(每个字段的值)",cnt 查询count(*)的sql文
因为这个查询后只有一个字段,所以使用rs.fields(0),1是已存在,0是不存在
rs.Open "SELECT COUNT(1) FROM tablename WHERE name = '" & Value & "' AND birthday = CDate('" & Value & "') ", cn, 3, 1
cnt = rs.fields(0)
checkbox是否选中的判断
Me.chk.Value = -1是选中 IsNull()判断是否为null
Len()判断数据的长度 email地址的判断
Set tkExp = CreateObject("VBScript.RegExp")
tkExp.Pattern = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
If tkExp.Test(email) = False Then
MsgBox "email 格式不正確。", 48
Me.自宅email .SetFocus
Exit Function
End If
带有返回结果的msgbox,33的含义是 32+1,32是带有问号图标的提示框,1是显示“确定”和“取消”按钮,所以当你需要指定按钮和图标的时候可以把它们代表的数字加起来
当你点击取消的时候返回值是2,而vbCancel 的值是2,如果返回值和vbcancel的值一致的话,那么你点击的就是取消按钮,msgbox之后会详细列出来
msgRet = MsgBox("msg", 33)
If msgRet = vbCancel Then
Exit Sub
End If
打开新窗体,用法单独说明
DoCmd.OpenForm "openedFormName", , , , , , "需要传递的参数"
openedFormName中接收的写法是,变量=strTransitFormName = Me.OpenArgs 子窗体调用主窗体的方法并关闭自己
Dim main As MainForm
Set main = MainForm
main.検索_Click
DoCmd.Close acForm, "ChildForm"
子窗体右键可以删除数据的设置,设计视图许可设成 否
access 2007 vba 开发中学到的知识(一)的更多相关文章
- access 2007 vba 开发中学到的知识(三)
打开文件或程序 'API函数声明Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellEx ...
- access 2007 vba 开发中学到的知识(二)
文件的导入和导出 excel 'excel导入Private Sub btnInExcel_Click() Dim strSelectFile As StringWith Application.Fi ...
- access 2007 vba (亖)
OpenReport方法执行 OpenReport 操作在 Visual Basic 中. 语法 表达式 .OpenReport(ReportName, View, FilterName, Whe ...
- iOS开发学习概述及知识整理
设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用 ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...
- access 2013下载 access 2010下载 access 2007下载 Access 2003下载 安装交流的论坛
在网上搜索了一个access 2013下载 access 2010下载 access 2007下载 Access 2003下载 安装交流的论坛 office安装的常见问题: http://www.of ...
- 最全的access2013教程 access 2010教程 access 2007教程 Access 2003教程
最全的access2013教程 access 2010教程 access 2007教程 Access 2003教程 都在这个access中国网站里 http://www.office-cn.net/o ...
- Office、VBA开发方案选择指南
最近很多朋友向我提出Office的开发方式方面的疑惑,主要是针对特定的系统和Office版本不知道选择哪一种编程语言.创建哪一种类型的项目. 事实确实如此,如果搞不清楚语言的特性和项目类型的特点,很可 ...
随机推荐
- 细说PHP优化那些事
我们在用PHP编程的时候,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少.往往我们在追求这些的同时却失去了很多东西.下面我想讲讲我对PHP优化的理解.优化的目的是花最少的代价换来最快的运行 ...
- hql 多表查询
sql 单表/多表查询去除重复记录单表distinct多表group by select h from Hytxbz as h,Tgbzk as t where h.hytxbzid=t.hytxbz ...
- css、js的相互阻塞
先决条件:脚本前面存在外部样式 以下试验虽然是在chrome下,但是对于IE8+以及其他浏览器也适用. 1.内联脚本(http://jsbin.com/mudab/1) <!DOCTYPE ht ...
- Pig Apache Hadoop
http://blog.cloudera.com/blog/2009/06/analyzing-apache-logs-with-pig/
- ALTIUM 10 过孔设置开窗、不开窗
大家或许会发现我们公司做的PCB板子,所有的过孔都开了窗,也就是说过孔没有绿油,这样会导致焊接中容易连焊.兴许大家为此吃进苦头,我是被整了好几次,查了好久却发现是个低级错误,一个过孔连焊到隔壁焊盘了. ...
- MCS-51单片机内部结构
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解. 8051单片机包含中央处理器.程序存储器(ROM).数据存储器(RAM).定时/计数器.并行接口.串行接口和中断系统 ...
- poj3177 Redundant Paths
Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numb ...
- HDU_1042——阶乘,万进制
#include <cstdio> ; const int BASE = MAX; int main() { int n, i, j; while(~scanf("%d" ...
- DPDK2.1开发者手册4-7
Mempool Labrary 一个内存池(memory pool)就是固定大小对象的分配器.在dpdk中,它是通过名字来标示唯一性的,且使用环形队列来保存没有使用的空闲对象.它提供了一些可选项服务例 ...
- 11636 - Hello World! (贪心法)
Problem A Hello World! Input: Standard Input Output: Standard Output When you first made the comput ...