我創建使用的MS Access(MS訪問基本上是唯一的選擇很輕的CRM工具,因爲我被要求做沒有超出人工成本,沒有任何服務器或基礎設施的支持超越網絡驅動器上的空間)。的MS Access - 分組字段爲更好地控制在VBA
我目前的工作任務分配形式,其中一個經理可以分配特定的客戶聯絡任務,客戶服務代表(CSR)上。我有一個表格。在這個表格上有九行 - 每個CSR一個 - 和9個欄 - 每個任務一個。經理通過填寫複選框然後單擊保存來分配任務。然後將這些數據保存到任務分配表中。現在,CSR名稱和當前分配的標籤和初始值由DLookups以編程方式提取 - 每個控制對象一個(90行)。然後通過「Do While r.EOF/r.MoveNext(其中r是從表中設置的記錄)循環(另外90行)將賦值寫入表中。
我的問題是創建了很多的垃圾代碼,我不滿意這不容易擴展,看起來像狗屎,我想要的是能夠將每行數據字段(CSR的名稱作爲一個文本框,他們的9個任務作爲檢查控制)作爲一個羣體,所以我可以遍歷該組編程
我想要的是組每組10個字段的在一起,然後可以做這樣的事情:
Private Sub Form_Open(cancel As Integer)
Dim db As DAO,Database
Dim r as DAO.Recordset
Dim CSR as TaskGrouping 'Where TaskGrouping is the new group name thing I have created
Set db = CurrentDb
Set r = db.OpenRecordset("tbl_TaskAssignments")
r.MoveFirst
For Each CSR in CSRGrouping
CSR.CSRName = r.Fields("CSRName")
CSR.Task1 = r.Fields("Task1")
CSR.Task9 = r.Fields("Task9")
r.MoveNext 'I am ignoring the case where I need to ensure that r.EOF is not reached.
Next CSR
End Sub
爲什麼不使用連續表單?也就是說,假設您的表格設置了CSRName字段和9個任務字段。這樣,如果團隊中有更多(或更少)CSR,它會自動調整。你所做的事情將導致你不得不返回並編輯表單以進行手動調整。 –
你可以創建一個私人收藏或字典與所有適當的映射,在一個單獨的方法初始化?然後你可以基本迭代,就像你所建議的那樣,邏輯看起來很乾淨。你仍然有難看的初始化,但它與你的邏輯隔離。 – enderland
「每個控制對象一個(90行)」,爲什麼不是9x9 = 81行或9行?你能解釋一下嗎? – jacouh