Office中国论坛/Access中国论坛

标题: 求助:如何设计查询取同类字段的问题 [打印本页]

作者: RickyZjw-3721    时间: 2009-9-8 23:31
标题: 求助:如何设计查询取同类字段的问题
如附件,我想把表ExpnDTL10102中ActExp_Acct,ActExp_AcctDescription,PPExp_Acct和PPExp_AcctDescription4个字段去掉,用SQL代码只取"20"和"P20"开头的字段(当然不是直接把所有的字段拉进查询那么简单),如何改动查询10102ExpnDetail_SQLQry才能做到这点呢?谢谢!
作者: liwen    时间: 2009-9-8 23:50
搜一下动态更改查询的SQL语句的相关示例
dao:
qqrt="select count(*) from table1"
Set qry = CurrentDb.QueryDefs("qwer")
qry.SQL = QQRT
作者: RickyZjw-3721    时间: 2009-9-9 22:24
还是不太明白.上面语句中"qwer"代表什么含义呢?
我所需要的查询要通过DAO的方法才能达到吗?鉴于本人能力有限,写复杂的VBA语句可能有些吃力.有简单一些的吗?
再次感谢版主的热心指点!
作者: Henry D. Sy    时间: 2009-9-10 09:45
你的命名看起来晕。
作者: Henry D. Sy    时间: 2009-9-10 10:04
  1. Private Sub Command0_Click()
  2.     Dim rs As New ADODB.Recordset
  3.     Dim qdf As DAO.QueryDef
  4.     Dim sSQL As String
  5.     Dim flds As String
  6.     Dim Bj As String
  7.     Dim i As Integer
  8.     With rs
  9.         .Open "ExpnDTL10102", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  10.         For i = 0 To .Fields.Count - 1
  11.             Bj = Left(.Fields(i).Name, 2)
  12.             If Bj = "20" Or Bj = "P2" Then
  13.                 flds = flds & "[" & .Fields(i).Name & "],"
  14.             End If
  15.         Next
  16.         .Close
  17.     End With
  18.     If Len(flds) <> 0 Then
  19.         flds = Left(flds, Len(flds) - 1)
  20.         sSQL = "select " & flds & " from ExpnDTL10102"
  21.         Set qdf = CurrentDb.QueryDefs("Q")
  22.         qdf.SQL = sSQL
  23.         qdf.Close
  24.         Set qdf = Nothing
  25.         DoCmd.OpenQuery "Q"
  26.     End If
  27.     Set rs = Nothing
  28. End Sub
复制代码

作者: liwen    时间: 2009-9-10 13:00
还是不太明白.上面语句中"qwer"代表什么含义呢?
我所需要的查询要通过DAO的方法才能达到吗?鉴于本人能力有限,写复杂的VBA语句可能有些吃力.有简单一些的吗?
再次感谢版主的热心指点!
RickyZjw-3721 发表于 2009-9-9 22:24

"qwer"只是代表一个查询名称,你应该通过帮助查找QueryDefs的用法和相关信息,帮助中也有示例,看懂了示例也就了解了其参数是什么了.

如果你的字段名基本上是固定的,直接更改查询定义即可,如有规律的变动的字段,你先要获得字段名再分析有用的字段组成有效的SQl语句即可.
作者: RickyZjw-3721    时间: 2009-9-11 22:36
真的很感谢两位版主的热心解答,你们辛苦了!Henry D. Sy版主的VBA水平在下很是羡慕,学习了!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3