2013-07-23 207 views
0

我不確定我是否對這個問題使用了正確的標題,但是我會試着問一下。請耐心等待我是微軟Access新手。從表中填充表格

我正在爲我的公司的員工評論製作一個MS-Access數據庫,並且我製作了表單,表單中的所有數據都將轉到兩個單獨的表格。每次填寫表格時,表格都通過相同的評分ID鏈接。

我有一個單獨的表格,當您選擇被查看的利益相關者的名稱時,它會填充一個列表框,其中包含查看他們的領導者的姓名,日期和評級ID。如果您選擇評級ID,我使用VB將其設置到了哪裏,然後它將打開使用DoCmd.OpenForm「FRM」將數據放入其中的表單。

現在對於這個問題,我希望這都是可以理解的。我希望通過選擇要重新填入評級ID的表單以及爲該特定ID輸入到表格中的所有信息。我需要做什麼來做到這一點?

+0

我已經刪除了標籤「MS-訪問」從你的稱號;標題不應該包含標籤,因爲它是不必要的,並且可以禁止搜索功能。 –

+0

如果你已經正確設置了這個,那麼打開一個基於ID的表單將會填充該ID的所有數據,所以也許你應該澄清你的問題;即提供更具體的信息。 –

回答

2

另一種選擇是立足於一個表或查詢(其RecordSource)的形式,並使用Where打開形式時子句論點:

DoCmd.OpenForm "frmName", acNormal, , "[SomeID]=" & frmYours!ctlControlName 

這具有形式可單獨打開,因爲這將只是顯示從其RecordSource所有數據,不產生不希望的參數請求的優點。

如果SomeID是文本,然後它的價值需要用撇號被引用:

DoCmd.OpenForm "frmName", acNormal, , "[SomeID]='" & frmYours!ctlControlName & "'" 
+0

謝謝你的幫助,現在它工作得很好。 – Rufus

0

對此有各種可能的解決方案。

第一個(最簡單的)是寫在與適當的數據源表單的RowSource屬性的查詢,並且包括在對應於該ID你過濾該查詢的過濾器字段:

select a.* 
from [your table] as a 
where a.[id] = forms!frmYourForm![theControlName] 

這樣,每次打開表單時,它都會顯示相應的數據。

第二個解決方案(更復雜一點)是在運行時編輯RowSource屬性。在打開的窗體的代碼,你可以做這樣的事情:

strSQL = "select a.* from [your table] as a where a.Id = " & theControlName.Value 
DoCmd.OpenForm "theDetailedForm" 
form_theDetailedForm.RowSource = strSQL 
form_theDetailedForm.Requery 

希望這有助於你

+0

謝謝你的建議。我剛從午餐回來,現在開會。稍後我會繼續努力,嘗試您的建議。 – Rufus