
数据库
slowgrace
♫ 西西雍雍
展开
-
权宜之计002:晕了吧唧的OUTER JOIN
Technorati 标签: outer join,Jet SQL,ACCESS,参数查询 版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明作者:xixi出处:http://blog.youkuaiyun.com/slowgrace/archive/2008/10/05/3016635.aspx 话说我在ACCESS中写了个这样的嵌套joi原创 2008-10-05 03:10:00 · 2124 阅读 · 0 评论 -
还是UNION ALL
感谢Tiger_Zhao的指点:http://topic.youkuaiyun.com/u/20090331/09/063f9142-1e6c-4145-80a0-a23be6ad9e70.html?seed=1487681187 我有个表tblNode,有4个字段:lngNodeId(主键),lngFatherId, strDetailTable, lngDetailId 另外有若干表结构完全相同原创 2009-03-31 10:05:00 · 572 阅读 · 0 评论 -
ACCESS中的存储过程——参数查询
Access 的 MDB / MDE 中存在类似存储过程得概念(建立时也可以使用 DDL 语句的 create procedure 语句建立),但是叫参数查询,并且一个参数查询只支持一条 JET SQL 语句,因而 JET SQL 不存在程序流控制语句,所有的程序流控制都交由 VBA 控制。也就是说 T-SQL 中的 IF 以及 CASE 语句在 JET SQL 中不存在,但是部分功能可以用 II转载 2009-04-16 19:15:00 · 4909 阅读 · 1 评论 -
表名做参数返回记录数
用这个语句:SELECT Count(*) AS 记录数 FROM [表名];原创 2009-04-03 18:23:00 · 549 阅读 · 1 评论 -
从指定数据库访问数据
用In语句,如下: SELECT hobby.id, hobby.hobbyName FROM hobby IN "C:/Documents and Settings/Administrator/桌面/db.mdb" ORDER BY [hobbyName];原创 2009-04-09 11:46:00 · 606 阅读 · 0 评论 -
规定SQL语句的输出结果有2个小数位
用round()可以规定SQL语句的输出结果有2个小数位,感谢ACMAIN_CHM指点。 SELECT round(decPercent,2)FROM tblTest;原创 2009-11-08 15:36:00 · 1201 阅读 · 0 评论 -
按列排序
SELECT a.bId, Sum(a.lngCost) AS lngCost之总计, round(lngCost之总计/sCost,2)FROM tblTest a,(select sum(lngCost) as sCost from tblTest) bGROUP BY a.bId,b.sCostorder by lngCost之总计 desc; 在ACCESS中使用上述查询,排序字原创 2009-11-08 18:31:00 · 504 阅读 · 0 评论 -
用查询得到各个分组的和相对于所有记录总和的百分比
(感谢ACMAIN_CHM指点)。 SELECT bId, Sum(lngCost) AS lngCost之总计FROM tblTestGROUP BY bId; 以上语句可以得到各个分组的lngCost字段的和,那么如何用SQL语句得到各个分组的和相对于所有记录总和的百分比呢?可以用如下语句:SELECT bId, Sum(lngCost) AS lngCost之总计, ln原创 2009-11-08 20:27:00 · 792 阅读 · 0 评论 -
对象无效或不再被设置
本文标签:数据库在ACCESS VBA中运行如下代码,会得到运行时错误:对象无效或不再被设置。 Sub CurrentDbFail() Dim td As TableDef Set td = CurrentDb.TableDefs("Customers") MsgBox td.Name 报错End Sub 这是由于CurrentDb 函数所原创 2010-01-16 11:39:00 · 3207 阅读 · 0 评论 -
数据库中字段的取名原则
本文标签:数据库、数据类型及命名规范本文来自这个帖子的小结,感谢ACMAIN_CHM、Tiger_Zhao、vbman2003等多位朋友的热心指点。 (1)一般正规的要求是用ACSII中的字符,以避免多语言环境的限制。 (2)一般要求用英文全名或完整的汉语拼音以方便理解,相较于中文,编程时不必切换输入法影响输入速度。(3)如果用绑定,而且无多语言环境的限制,那么用中文,这样就不用额外修原创 2010-01-16 14:54:00 · 1241 阅读 · 2 评论 -
在DAO里对记录集使用Filter
部分来自这个帖子的讨论,感谢wwwwb指点。Set rstTmp = CurrentDb.OpenRecordset("A", dbOpenDynaset) rstTmp.Filter = "ID Like *" & strSelBId & "*"Set rstTmpFiltered = rstTmp.OpenRecordset……rstTmpFiltered.Close原创 2009-12-03 18:29:00 · 995 阅读 · 0 评论 -
DAO和ADO里批量删除记录
DAO里批量删除记录 Dim intNums As Integer 返回删除的记录数量 DBEngine.Workspaces(0).BeginTrans Call db.Execute("DELETE FROM 数据表 WHERE", intNums) DBEngine.Workspaces(0).CommitTrans ADO里批量删除记录原创 2009-12-10 18:28:00 · 1659 阅读 · 1 评论 -
DAO中删除表和记录及处理自动编号
删除表:CurrentDb.Execute "DROP TABLE [表名] "批量删除指定记录: strSql = "DELETE * FROM [表名] WHERE [lngNodeId] CurrentDb.Execute strSql自动编号字段比较讨厌,如果你删除了记录之后再添加,记录编号会从删除的地方之后继续增加。比如你有10001条记录,删掉最后10000条,原创 2009-03-26 16:03:00 · 1660 阅读 · 1 评论 -
ADO的recordset的filter不支持对字段用函数
来自:http://topic.youkuaiyun.com/t/20040714/17/3174984.html 及http://topic.youkuaiyun.com/u/20091206/02/e10730a4-8d8e-4a30-ac2e-341f058f8b69.html 问:在ADO的RecordSet的Filter属性中输入: month([BirthDay])>7 and day([B原创 2008-12-24 08:10:00 · 2664 阅读 · 0 评论 -
From子句语法错误
今天运行一段程序,总是报“运行时错误(之后一串数字),From子句语法错误”。我跟进去,把sql的值拷出来,贴在Access的查询设计器sql模式里,没错。同样的函数、同样的sql,只是表名加了“[]”,也没错。我有点小郁闷。然后上网看了下,有两个网友也遇到过类似的情况,最后都发现是From之后的表名和系统的保留字冲突,加了[]之后就没事了,我也这么试试,一切OK。呵呵。原创 2009-03-01 18:14:00 · 4300 阅读 · 0 评论 -
键列信息不足或不正确。更新影响到多行。
今晚上调段edit记录的程序,试了几次结果都不对。跟进去看看,发现程序在某条语句之后无声无息的终止运行了。这回我有经验了,在过程头上写了个on error goto的语句,在error处理部分,stop一下,到立即窗口敲如下文字,得到如下结果:?error键列信息不足或不正确。更新影响到多行。上网查查,发现鬼火狼烟在这个帖子的11楼说得好像挺有道理:客户端游标更新后由ADO负责和数据原创 2008-10-27 22:44:00 · 3449 阅读 · 3 评论 -
ADO记录集filter属性清空后
将 Filter 属性设置为零长度字符串 ("") 与使用 adFilterNone 常量具有相同效果。 只要设置了 Filter 属性,当前记录位置都将移动到 Recordset 中已过滤记录子集的第一个记录处。同样,当 Filter 属性被清空时,当前记录位置都将移动到 Recordset 的第一个记录处。 来自ADO帮助 其他和filter相关的文章:ADO的转载 2009-02-01 19:46:00 · 1203 阅读 · 0 评论 -
权宜之计004:冲突只能回避啊
一、问题描述有个绑定数据表的子窗体,改了其中一个字段(该字段绑定到一个文本框)的值之后,希望同一记录的另外一个字段的值做相应变化,另外也引起其他表和控件的一系列变化。这所有相关变化我事先写了个函数,因为还有好几处别的地方要用它。我在该文本框的afterupdate事件过程里调用了这个函数,之后在子窗体中移动到下一条记录,就会有写入冲突。原因我也明白,因为子窗体上改动了这个记录,还没原创 2009-02-03 16:39:00 · 736 阅读 · 0 评论 -
关于OldValue
控件的OldValue属性: (1)用来记录控件的值在更新前的旧值。(2)它只在控件所在窗体移到新纪录的时候才变更。 具体可看微软帮助。原创 2009-02-03 16:54:00 · 915 阅读 · 0 评论 -
子窗体不能正确与父窗体同步
关于子窗体 ACCESS中有个很好用的功能,就是只要设置了子窗体和父窗体的关联字段,当父窗体的关联字段变化时,子窗体显示的内容就会自动同步变化。这个过程不需要编一行代码,很贴心,我也用得很顺手。但最近我做的程序里,不知为何子窗体总是显示乱七八糟的内容,不能和父窗体的内容同步变化。具体情况是这样的:话说我的树控件的细节信息放在细节子窗体里显示,因为一个树上可能挂多种类型的细节,所以细节子窗体也有原创 2009-02-10 14:19:00 · 2665 阅读 · 0 评论 -
JetSql的字符串通配符是%不是*
Technorati 标签: VBA,JetSql,通配符%Dim rstTree As ADODB.RecordsetDim strSql As StringstrSql = "SELECT lngNodeId, strNodeName FROM " & m_strTreeTable & " WHERE (strNodeName Like NewNode*) "Set原创 2008-12-02 20:53:00 · 564 阅读 · 0 评论 -
VBA Brush Up 10:Accessing Data Using ADO
Technorati 标签: VBA,ADO来自:Julitta Korol,“Access.2003.Programming.by.Example.with.VBA.XML.and.ASP”,by Wordware Publishing, Inc. 2005, p169-p193(1)ActiveX Data Objects (ADO) is a set of programming o转载 2008-12-03 11:01:00 · 1447 阅读 · 0 评论 -
从多个具有相同字段的表里检索记录
http://topic.youkuaiyun.com/u/20090215/09/9b77ea38-5cbf-4dd2-a553-731e644e7a8a.html?392976002 我有多个表,都具有name字段和value字段和id字段,其他字段不同。我想从这所有表里检索出value为2、name为“nm”的记录,并且在这个查询里包含一个字段叫“表名”,说明当前记录是具体从哪个表里查出来的。原创 2009-02-15 12:53:00 · 843 阅读 · 0 评论 -
VBA Brush Up 11:Creating and Accessing Tables and Fields with ADO
Technorati 标签: VBA,ADO,table, error handler来自:Julitta Korol,“Access.2003.Programming.by.Example.with.VBA.XML.and.ASP”,by Wordware Publishing, Inc. 2005, p194-p211In this chapter you will use the A转载 2008-12-04 20:46:00 · 1796 阅读 · 0 评论 -
VBA Brush Up 12:Setting Up Indexes and Table Relationships with ADO
Technorati 标签: relationship,Access,vba,index,ADO来自:Julitta Korol, "Access.2003.Programming.by.Example.with.VBA.XML.and.ASP", by Wordware Publishing, Inc. 2005, p212-p220(1)A primary key is an inde转载 2008-12-07 16:08:00 · 926 阅读 · 0 评论 -
如何得到新增记录的自动编号字段值
很简单,先取id后update。不过,要注意的是,这时cursor的位置要设为adUseServer。因为,如果设为adUseClient,那AddNew之后得到的ID值是NULL。 Set rstNewDetail = New ADODB.Recordset With rstNewDetail .ActiveConnection = Curr原创 2008-12-16 09:14:00 · 632 阅读 · 0 评论 -
在数据表形式的ACCESS窗体中将光标移到指定记录
在数据表形式的ACCESS窗体中将光标移到指定记录,用FindFirst方法如下:Me.Recordset.FindFirst "id=30"原创 2012-03-21 19:50:14 · 4796 阅读 · 1 评论