2010-03-30 94 views
0

希望有人可以幫助組合框的值自動更新

表結構如下:

tblCompany: 
compID 
compName 

tblOffice: 
offID, 
compID, 
add1, add2, add3 etc... 

tblEmployee: 
empID 
Name, telNo, etc... 
offID 

我有一個包含員工聯繫信息的表單,所有更新後使用的作品確定。 級聯組合框cmbComp允許我選擇一家公司,然後選擇合適的辦公室cboOff,並正確更新相應的tblEmployee.offID字段。字段會自動更新的地址也

cmbComp:行來源

SELECT DISTINCT tblOffice.compID, tblCompany.compID 
FROM tblCompany 
INNER JOIN AdjusterCompanyOffice 
ON tblCompany.compID=tblOffice.compID 
ORDER BY tblCompany.compName; 

cboOff:行來源

SELECT tblCompany.offID, tblCompany.Address1, 
tblCompany.Address2, tblCompany.Address3, tblCompany.Address4, 
tblCompany.Address5 
FROM tblCompany 
ORDER BY tblCompany.Address1; 

我遇到的問題是,當我打開一個新的記錄如何檢索數據並自動加載cmbComp和文本字段。

的cboOff組合框中正確加載作爲該控制源是offID

我想必須有設置在打開記錄的價值的一種方式?不知道如何。我不認爲我可以設置控件來源cmbComp或文本字段,或者我可以嗎?

任何幫助/點在正確的方向讚賞,一直在尋找一種方法來做到這一點,但無法獲得任何地方!

-edit

香港專業教育學院嘗試添加一個文本域

=[Forms]![frmAdjPersonalDetails]![cboAdjOff].[Column](2) 

這個工作在獲取值,但會導致錯誤與控制以下後更新用於創建級聯組合框並更新文本字段。

Private Sub cmbComp_AfterUpdate() 
Me.cboOff.RowSource = "SELECT ID, Address1, Address2, Address3, Address4, Address5  FROM" & _ 
" tblOffice WHERE CompID = " & Me.cmbComp & _ 
" ORDER BY Address1" 
Me.cboAdjOff = Me.cboAdjOff.ItemData(0) 
Me.txtAdd2 = Me.cboOff.Column(2) 
Me.txtAdd3 = Me.cboOff.Column(3) 
Me.txtAdd4 = Me.cboOff.Column(4) 
Me.txtAdd5 = Me.cboOff.Column(5) 
End Sub 

不知道該怎麼辦?

回答

0

如果我理解正確,您正在尋找「Requery」語句。 這將「刷新」組合框或表單中的數據。 你可以把一個

Me.Requery 

在相關的事件處理程序。如果我沒有記錯的話,可能是「AfterUpdate」。

+0

沒有抱歉,它不是Me.Requery,據我所知重新載入整個記錄。 我想知道的是;當我在記錄之間移動控制級聯組合框時,以及由它更新的相關字段爲空。 我不知道如何在窗體上打開記錄時填充這些字段。 這是否合理?感謝您的回覆無論如何 – noelmcg 2010-03-30 18:44:37

+0

嗨,我得到這個工作使用form_current()並在那裏設置值。感謝您的幫助,雖然Loopo。 – noelmcg 2010-04-04 12:42:55

+0

使用Me.NameOfCombo.Requery來單獨重新查詢組合。 – Fionnuala 2010-04-14 07:54:53

0

嘗試在組合框中

行源=

「SELECT DISTINCT table.field FROM表;」

查找表中的所有唯一值,alphebetizes,然後使其成爲一個長下拉菜單。

+0

我不清楚這是如何解決實際問題的任何部分。 – 2010-04-14 01:09:02