1

感謝您的幫助提前。我不熟悉的功能...在組合框中填充計算的字段與選擇組合

我有一個子窗體包含類型,數量和單位的字段列表。我想根據所選類型計算總金額。通過這樣做,我嘗試了使用編碼,但遇到了各種錯誤。

首先,「運行時錯誤'3078':」Microsoft Jet數據庫引擎無法找到inpute表/ query'50000'。

我給這代碼是:

If Me.cmbTOL1 = "Type B" Then 
Me.txtC1 = (DMax(Me.txtAmt1, 50000) * 0.055)/Me.txtNoofUnits1 
End If 

其次, 「運行時錯誤 '2450':」 的Mircosoft Access找不到形式 「frmInformation」 在宏表達或Visual Basic代碼提及。

我對這個代碼是:

If Me.cmbTOL1 = "Type M" Then 
Me.txtC1 = (DMax(Me.txtAmt1, (2 * [Forms]![frmInformation]![GrossAmt])) * 0.015)/Me.txtNoofUnits1 
End If 

編輯:

我試圖讓從frmInformation值[GrossAmt。除了[Forms]![frmInformation]![GrossAmt]檢索值之外,還有其他方法嗎?

我真的不明白的DMAX()函數...但我改變了我的代碼,這...

If Me.cmbTOL1 = "Type B" Then 
    If Me.txtAmt1 > 50000 Then 
    Me.txtC1 = (Me.txtAmt1 * 0.055)/Me.txtNoofUnits1 
    Else 
    Me.txtC1 = (50000 * 0.055)/Me.txtNoofUnits1 
    End If 
End If 

回答

1

DMin, DMax Functions,語法是:

DMax(expr, domain[, criteria]) 

第二個參數應該是「一個字符串表達式,用於標識構成域的記錄集合,它可以是查詢的表名或查詢名稱不需要參數。

但你的代碼提供DMax()數值爲說法:

DMax(Me.txtAmt1, 50000) 
DMax(Me.txtAmt1, (2 * [Forms]![frmInformation]![GrossAmt])) 

我不明白你要完成什麼。然而,如果你使用DMax(),你必須給它表或查詢作爲參數的名稱,而且Me.txtAmt1應該是一個字段的基於字段的名稱,或表達,在

錯誤消息哪些抱怨Access無法找到窗體「frmInformation」可能是因爲表單未打開(因此不存在於Forms集合中),名稱拼寫錯誤,或者它實際上是包含在另一種形式。

你沒有解釋你的問題中的代碼更新會發生什麼。告訴我們,當你在立即窗口中鍵入此行,然後按Enter鍵會發生什麼:

? [Forms]![frmInformation]![GrossAmt] 

您可以通過按Ctrl + 克立即窗口打開。窗體,frmInformation,應在窗體視圖中打開時在立即窗口中鍵入上面的行。

可以從這樣的即時窗口查詢的名稱,如訪問看到他們,所有打開的窗體:

for each f in forms : ? f.Name : next 
+0

已編輯quesion ......出現 – GuessWho

+0

運行時錯誤...「運行時錯誤'2450':「Mircosoft Access無法找到表單」frmInformation「在宏表達式或Visual Basic代碼中引用。 我已經加倍檢查表單名稱...這是正確的...任何想法有什麼不對? – GuessWho

+0

我用於上述的表單是一個子表單... frmInformation是主表單... – GuessWho