Access VBA執行階段指定報表查詢字串 *or set現有查詢 *同場加映 VBA動態新增.刪除查詢

  • 1893
  • 0

Access VBA執行階段指定報表查詢字串 *or set現有查詢 *同場加映 VBA動態新增.刪除查詢

由於用Access建立的查詢,無法在工作階段中指定"參數"值

e.g.失敗範例

 

在查詢中設定參數

image

 

SQL語法檢視模式

   1:  PARAMETERS D1 DateTime
   2:   
   3:  set [D1]=[Forms]![open]![起始日期]
   4:  '↑這行是沒有用的.不能這樣設定
   5:  SELECT * from test

image

 http://stackoverflow.com/questions/7491662/sql-query-variables-in-ms-access

 

 

 

其他關於參數

Access 為何要我輸入參數值?http://office.microsoft.com/zh-tw/access-help/HA010274377.aspx#BM4

使用參數於查詢和報表http://office.microsoft.com/zh-tw/access-help/HA001117077.aspx

讓查詢要求輸入http://office.microsoft.com/zh-tw/access-help/HA010341833.aspx

 

 

 

 

 

 

 

e.g.成功範例

在報表的OnLoad事件 直接寫查詢語法

image

 

 

 

*同場加映

VBA動態新增.刪除查詢

 

   1: Sub UpdateQuery(QueryName, SQL)
   2:     ''Using a query name and sql string, if the query does not exist, ...
   3:     If IsNull(DLookup("Name", "MsysObjects", "Name='" & QueryName & "'")) Then
   4:         ''create it, ... 建立一個新的查詢
   5:         CurrentDb.CreateQueryDef QueryName, SQL
   6:     Else
   7:         ''Other wise, update the sql.
   8:         CurrentDb.QueryDefs(QueryName).SQL = SQL
   9:     End If
  10:  
  11: End Sub
  12: 'Note that deleting a query that does not exists will cause an error.
  13: '刪除新建的查詢
  14:  
  15:  DoCmd.DeleteObject acQuery, "NewQuery"