1,  最关键的Object : DoCmd

DoCmd.RunSQL

DoCmd.OpenForm

DoCmd.OpenQuery

DoCmd.OpenTable

DoCmd.Quit

2, 数据的绑定:

Me.frmChild.Form.RecordSource = strSQL

3,关键的查询:

If DLookup("[comSale]", "tblSalelist", "[comSale]='广州分公司'") = "广州分公司"

4,ADO 记录集的使用

vba代码里查询出来的recordset如何绑定到窗体的控件中

如果是子窗体的话,先设置在子窗体的记录源为一个表或查询,然后把你要用的字段放进去,再设置好格式。
然后,动态生成一个recordset, 如果这个recordset 可以用sql表示,那最简单不过:
me.子对象0.form.recordsource="select ......."。

如果是listbox 或combobox的话,先设置记录源为某个表或查询,然后,再动态把表或查询按你的筛选或其他要求更新,然后用:
me.listbox1.requery或me.combobox1.requery语句刷新一下就可以了。

access vba 用recordset读取表中数据的简单方法

[vb]  view plain copy
  1. 'strQuery是表名,查询名等
  2. Public  Function Getrs(Byval strQuery as string)  as ADODB.Recordset
  3. Dim objRs As New ADODB.Recordset
  4. on Error GoTo  Error_Getrs
  5. objRs.open  strQuery,CurrentProject.connection
  6. '程序调试用
  7. 'Do While Not objRs.EOF
  8. '        Debug.Print objRs(0) & vbTab & objRs(1) & vbTab & _
  9. '                    objRs(2)
  10. '        objRs.MoveNext
  11. 'Loop
  12. Set  Getrs =objRs
  13. Exit _Getrs:
  14. Exit  Function
  15. Error_Getrs:
  16. MsgBox (Err.Description)
  17. Resume Exit _Getrs
  18. End  Function
Public Function getrs(ByVal strquery As String) As ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Set conn = CurrentProject.Connection
rs.Open strquery, conn, adOpenKeyset, adLockOptimistic
Set getrs = rs
Set rs = Nothing
Set conn = Nothing
Exit Function
End Function

access vba在新建查询前查看查询名是否存在

[vb]  view plain copy
  1. Dim dbsCurrent As Database
  2. Dim qryTest As QueryDef
  3. Set dbsCurrent = CurrentDb
  4. '---------------------查看查询.Query_temp是否存在-------------------
  5. Dim I As Integer
  6. Dim tblA As Boolean
  7. dbsCurrent.QueryDefs.Refresh
  8. For I = 0 To dbsCurrent.QueryDefs.Count - 1
  9. If "Query_temp" = dbsCurrent.QueryDefs(I).Name Then
  10. '如果查询名:Query_temp存在
  11. tblA = True
  12. Exit For
  13. End If
  14. Next I
  15. '--------------------------------------------------------------------
  16. If tblA Then '如果查询名:Query_temp存在,引用本查询
  17. Set qryTest = dbsCurrent.QueryDefs("Query_temp")
  18. Else             '如果查询名:Query_temp不存在,建立本查询
  19. Set qryTest = dbsCurrent.CreateQueryDef("Query_temp")
  20. End If
  21. '以下设置本查询的SQL,得到表strQUR_now的一字段Combo27.Value 的不同值组合
  22. '其中strQUR_now是自定义string变量记录表名,Combo27.Value 为表的一字段名
  23. qryTest.SQL = "SELECT distinct " & Combo27.Value & " FROM " & strQUR_now
  24. '将得到的不同值的组合放到Combo29的列表中
  25. Combo29.RowSource = qryTest.SQL
  26. DoCmd.DeleteObject acQuery, "Query_temp"  '注意对象在打开时不能被删除!

vba 中sql like用法

在 vba  中使用的 sql 提供的通配符主要有四种  '%', '_', '[ ]', '[ !]' 。下面对通配符做一些简单说明:
1 、 '%' 表示无数个字符串,如用 like 's%' ,即可查出以 s 开头的值;如用 like '%s_' 查出倒数第二位为 s 的值;如用 like '%s%' ,即可查出至少含有一个 s 的值。
2 、 '_' 该位置仅可以为一个任意字符,如用 like 'b_g' 即可查出 big 、 bag 等等所有以 b 开头以 g 结尾的三个字符的串。
3 、 '[ ]' 表示出现的字符是在一定的范围内,一般情况下它是配合 '%' 使用的。如 like ’p[ro]%’ ,他就可以查出以 p 开头、第二个字符为 r 或 o 的所有字串,即 pocket , product ……;如 like ’%[ro]%’ 可以查出所有含有字符 r 或 o 的字串。
特别地,对连续字母这里面可用 - ,如 like ‘[b-e]%’ 查出的是所有以 b 、 c 、 d 、 e 开头的字串;有多个这样的描述时不必用标点符号分开,如 like ‘[b-ej-m]%’  查出的是所有以 b 、 c 、 d 、 e 、 j 、 k 、 l 、 m 开头的字串。
另 like '%k%' 与 like '%[k]%' 效果一样。
4 、  '[ ! ]' 是不含,如 like ‘ b[! ro]% ' ,就是检索出以 b 开头但第二个字符不是 r 或 o 的字符; like ‘[!b-ej-m]%’  查出的是所有不是以 b 、 c 、 d 、 e 、 j 、 k 、 l 、 m 开头的字串。
5 、如果要查 % 时,请用 ^% 。如 like ‘%^%’ 表示查出所有以 % 结尾的字串;不要试图用 like ‘%[!k]%’ 来查出不含 k 的字串,而该使用 not like ‘%[k]%’ 或 not like ‘%k%’
为列表框定数据源  
 Dim str3 As String 
  str3 = "SELECT jhd_mx_jiage.wp_leibie AS 类别, jhd_mx_jiage.wp_migceg AS 名称, jhd_mx_jiage.wp_xighao AS 型号, jhd_mx_jiage.jhmx_danwei AS 单位, jhd_mx_jiage.jhmx_danjia AS 单价 FROM jhd_mx_jiage " & " where jhd_mx_jiage.wp_leibie='" & Listjhlb & "'"   Me.Listjhwp.RowSource = str3   Me.Listjhwp.Requery
为组合框、子窗体设置数据源 

下面的示例将组合框的 RowSourceType 属性设为“Table/Query”,
然后将 RowSource 属性设为“雇员列表”查询。 
Forms!Employees!cmboNames.RowSourceType = "Table/Query" 
Forms!Employees!cmboNames.RowSource = "EmployeeList"  
一: 
Dim str1 As String 
  str1 = "SELECT ziyuag.zy_daihao, ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmig FROM ziyuag " & " where zy_daihao='" & Text8dldh & "'and zy_mima='" & Text10dlmm & "'" 
Me.Child6zy.Form.RecordSource = str1   
Me.Child6zy.Requery 
二: 
子窗体.FORM.recordsourse="SELECT ziyuag.zy_daihao, ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmig FROM ziyuag " & " where zy_daihao='" & Text8dldh & "'and zy_mima='" & Text10dlmm & "'
三: 
Me.子窗体.RowSource = sjy 
Me.Requery
为主窗体、报表设数据源 
使用 RecordSource 属性可以指定窗体或报表的数据源。String 型,可读写。
 一: 
Dim sjy As String 
sjy = "SELECT 名单.* FROM 名单" & " where 姓名 like '*" & List101 & "*'" Me.RecordSource = sjy Requery 
二: 
me.RecordSource = "名单" 

导出成EXECL表 
DoCmd.TransferSpreadsheet acExport, 8, "" & Text0 & "", "A:\" & Text0 & ".xls", True, "" 

Access VBA 学习笔记 技巧相关推荐

  1. MS Access 2007学习笔记

    <MS Access 2007学习笔记>2009-07-29   16:30:54 摘抄自http://download.csdn.net/source/1529085 01. 数据库概念 ...

  2. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  3. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  4. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  5. VBA学习笔记2:将工作簿的表格拆分为工作簿

    VBA学习笔记2:将工作簿的表格拆分为工作簿 1.判断原有工作簿的sheet是否需要拆分: 2.如需拆分则创建新表: 3.将原sheet复制到新建的工作簿中. 效果如下: 代码执行前,有1个工作簿,需 ...

  6. VBA学习笔记8:单元格的合并与拆分

    VBA学习笔记8:单元格的合并与拆分 如下图,需要实现1图到2图(单元格合并),或2图到1图(单元格拆分). 1图: 2图: 合并单元格代码如下: Sub 合并单元格()Dim k%, rng As ...

  7. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  8. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  9. Excel VBA 学习笔记13:单元格的格式

    Excel VBA 学习笔记13:单元格的格式 NumberFormat 属性 (Excel) vba excel 单元格格式设置 Excel VBA 单元格格式 python解决SNIMissing ...

最新文章

  1. CUDA Samples: 获取设备属性信息
  2. VBA:指定なフォルダしたのすべてのファイル名
  3. 遇到“BUG: soft lockup - CPU#0 stuck for 22s”的解决思路
  4. 训练好的神经网络 如何预测_显存不够,如何训练大型神经网络?
  5. Dockerfile构建容器镜像 - 运维笔记
  6. 别再瞎搞数仓了!BAT内部大神:数据仓库不是谁都可以建的
  7. [Unity] 战斗系统学习 2:FlowCanvas 中的 SubGraph
  8. 服务器asp.net权限设置问题及解决方法时间:
  9. 深度相机---(1)TOF总结
  10. 多线程调用同一个对象的方法_这一次,让我们完全掌握Java多线程(2/10)
  11. 《信号与系统学习笔记》—周期信号的博里叶级数表示(二)
  12. 电影:美国队长:复仇者先锋
  13. Hello CSDN blog
  14. 软件理论基础学习笔记——模态逻辑(modal logic)
  15. 蓝盘绿盘黑盘红盘的区别
  16. 2023北京影视技术设备展览会
  17. 详解eclipse如何配置tomcat
  18. Java程序的基本结构
  19. 戴森:将于2022年内发布“空气净化耳机”
  20. geotools 数据库连接对象无法正常释放

热门文章

  1. 【干货】一名全栈设计师的 Mac 工具箱(设计,开发,效率)
  2. 【STM32】STM32之限位开关
  3. ppt文件不能打印出来怎么回事?
  4. NLP-预训练模型-2019-NLU+NLG:BART【Bert+GPT的泛化Seq2Seq模型】【噪声破坏后的原文本喂给编码器,解码器输出原文本】【噪音方案:文本填充(文本片段用单个掩码替换)】
  5. PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解
  6. Sine Sweep(正弦扫频信号)
  7. shell脚本将mysql数据库中查询结果导出制作成.CSV格式文件;或.txt/.log文件
  8. 做饼状图时,显示百分比的解决方案
  9. 智联招聘导出的文档有横线去除方法Office2007
  10. maya如何让控制器跟随模型,不脱节?