Ms-Access
在訪問中的 1 個表欄位中連接 2-3 個表欄位值
我有一個在 Access 中的項目。問題是我是這個應用程序的新手,我真的不知道該怎麼做,我已經檢查了幾種方法,但仍然卡住了。
我將處理一份調查文件,該文件將維護每個客戶的答案。一年內每月對客戶進行一次回訪,也就是說一個客戶一年可以有12次回訪。
我的問題是,如果我要在未來五年或更長時間內維護這個項目,我必須在我的表中維護另一個欄位來阻止重複的條目。
最好附上文件,但我找不到辦法。這是我想要的佈局:
在我的表格中,欄位 1 將連接其他欄位。年份作為欄位 2,月份(欄位 3),客戶程式碼(欄位 4)等 10 個被調查產品。
我需要以這種方式連接欄位 2、3 和 4,我可以查看是否在特定月份和年份輸入了客戶,如果我的表單中已經存在,我可以安排警告。
您根本不需要連接這些欄位。您可以使用所有 3 列來了解客戶是否填寫了給定月份和年份的調查:
SELECT * FROM Surveys WHERE CustomerID = 1 AND SurveyMonth = Month(Date()) AND SurveyYear = Year(Date())
Date() 函式返回目前系統日期。Month() 和 Year() 函式分別返回傳遞給它們的日期的月份和年份。
一個建議:將調查的整個日期作為日期類型儲存在數據庫中,而不是使用單獨的月份和年份列。這將簡化查找和儲存,使上面的查詢看起來更像:
SELECT * FROM Surveys WHERE CustomerID = 1 AND Month(SurveyDate) = Month(Date()) AND Year(SurveyDate) = Year(Date())
其中 SurveyDate 是 Date 類型的列。
SurveyMonth
您需要在and欄位上有一個唯一索引SurveyYear
,這將防止重複條目。您確實應該對月份和年份欄位進行限制,以避免輸入無效數字。
要限制這些值,請創建額外的表來儲存允許的月份和年份值,然後將外鍵關係添加到主表。
這可能比單個日期欄位更容易實現,因為您最終將拆分月份和年份,並且必須處理日期的日期部分,這在 Access 中可能會很棘手。