2012-04-04 23 views
1

作爲在Access和VBA一個業餘愛好者,我已經打了以下配置的牆壁......插入文本框的值到訪問SQL查詢

在MS Access 2007年,我有以下查詢:

SELECT .... WHERE format(NZ(l_f_date),'yyyy-mm-dd')<=**'2012-04-03'**); 

我縮短了一些當然。

該數據庫有大約20個需要每天運行的查詢。我創建了4個宏,以我需要它們運行的​​方式運行查詢組。問題是,在每一個查詢中,我首先必須更改日期(如在上面的查詢中)。我正在尋找更多的自動化方法。

我有一個想法來創建一個窗體,爲其上的每個宏和2個文本框輸入按鈕來輸入我需要的2個日期。現在,我需要這些日期出現在粗體部分。在我看來,我有兩種選擇:

  • 在數據庫中創建一個臨時表以存儲這兩個日期並將這兩個字段拖到我的查詢中。
  • 將文本框的值以某種方式直接插入查詢的粗體部分。

我想我可以管理第一個解決方案,但第二個解決方案讓我頭疼。

你能幫忙嗎?從評論

select proc_desc,count(s) as broj 
into upit3 
from (select distinct a.case_id as s, 
      a.org_case_id,a.act_date as day,d.prod_id,d.prod_desc, 
      c.fname,c.dpd,c.due_amount,proc_id,proc_desc 
     from actions_b as a, cases_old_b as c,processes_b as p, 
      product_dict_b as d 
     where a.org_case_id=c.[org_ case_id] 
     and a.act_date=Forms!Form!Text10 and d.prod_id=c.product 
     and p.proc_id=c.process and not_lead=1) 
group by proc_desc order by proc_desc; 

確定,樣本數據


SQL ....

在x.dates,價值正是這樣的:03.04.2012
在。 act_date的值如下:01.07.2011 13:53:56

so如果它不可能使用這些值,那麼可以在查詢中使用LIKE語句嗎?僞:WHERE a.act_date LIKE x.date%
如果有可能,如何使用它?我是一個新手在SQL和訪問查詢...我谷歌,但有時,像這個時候,我卡住了。
感謝

回答

0

OK,所以我決定建立在我的數據庫一個簡單的2列的表這是一項可以用來存儲和昨天今天的日期...我添加2文本框一種形式,1個按鈕,添加下一個程序的按鈕:

Private Sub Command25_Click() 
CurrentDb.Execute "DELETE * FROM Datumi" 
Dim tbl As Recordset 
Set tbl = CurrentDb.OpenRecordset("Datumi") 
tbl.AddNew 
tbl!brojka = "1" 
tbl!datum = Text8.Value 
tbl.Update 
tbl.AddNew 
tbl!brojka = "2" 
tbl!datum = Text10.Value 
tbl.Update 
End Sub 

正如你所看到的,按鈕上的點擊將清除表和新值存儲到2行...第1行是昨天,第2行是今天...

然後我從這張表中拉出這樣的值:

... where x.brojka=1 and format(a.act_date,'yyyy-mm-dd')=format(x.datum,'yyyy-mm-dd') ... 

我敢肯定,這是可以做到更好,但這個工作對我來說...

2

這種結構:

SELECT .... WHERE format(NZ(l_f_date),'yyyy-mm-dd')<='2012-04-03'); 

是不是一個好主意。一般規則是嘗試並堅持等號左側的字段(列)名稱。所以

SELECT .... WHERE l_f_date <=#2012-04-03# 

空值將不包含,我希望您的日期日期,而不是字符串。

下一頁添加形式:

SELECT .... WHERE l_f_date <= Forms!TheNameOfTheForm!TheNameOfTheTextbox 

編輯再評論

您正在使用的查詢設計窗口,是嗎?請試試這個測試查詢:

SELECT a.case_id, a.act_date 
FROM actions_b AS a 
WHERE a.act_date=Forms!Form!Text10 
+0

您好,感謝您的答覆。日期是實際日期。但上面的查詢返回空...我寫的是這樣的:!!!! 和a.act_date = [表格] [表] [Text10] 或 和a.act_date =形態的形態Text10 訪問不報告任何錯誤,但查詢後沒有結果。 – Peraklo 2012-04-04 12:45:48

+0

哪個查詢返回空?查詢在哪裏使用實際日期工作?運行查詢時窗體是否打開? – Fionnuala 2012-04-04 12:47:26

+0

另一件事 - 你可以編輯你的文章,包括SQL查詢? – Fionnuala 2012-04-04 12:48:24