我正在拔头发,因为无法弄清楚如何解决这个问题 我总结了12个文本框,构成了一个财政年度 MS -Access Report。
我在2个文本框和Totals TextBox上得到#Type错误,如果我将它们添加到1月到12月,则错误发生在Jan和Feb文本框和Total,如果我从12月到1月的总和错误发生在11月和12月的文本框和总计这样:
=[R_OthSpnd_1_Dec]+[R_OthSpnd_1_Nov]+[R_OthSpnd_1_Oct]+[R_OthSpnd_1_Sep]+[R_OthSpnd_1_Aug]+[R_OthSpnd_1_Jul]+[R_OthSpnd_1_Jun]+[R_OthSpnd_1_May]+[R_OthSpnd_1_Apr]+[R_OthSpnd_1_Mar]+[R_OthSpnd_1_Feb]+[R_OthSpnd_1_Jan]
这让我觉得它有事可做 使用TextBoxes处理函数的顺序,我检查了函数 文本框似乎从数据回到1月份的最高月份开始处理?
如果我将文本框中的函数包装在Nz函数和Totals中,它似乎没有区别?
知道我怎样才能正确地将它们送到Total?
VBA功能如下所示:
Function GetValue(ByRef Lookup_Value As String, ByRef Company_Name As
String, ByRef Mth_Value As String, ByRef Year_Value As String)
On Error GoTo Err_GetValue
Dim mydb As DAO.Database
Dim rs_1 As DAO.Recordset
Dim rs_2 As DAO.Recordset
Dim rs_3 As DAO.Recordset
Dim Get_SQL_1 As String
Dim Get_SQL_2 As String
Dim SQL_Return_Value As String
Dim fnDataReturn As String
Dim Lookup_Column_Name As String
Dim Lookup_Values As String
Dim X As Long
Set mydb = CurrentDb
Dim strTypeOfData(3)
For i = LBound(strTypeOfData) To UBound(strTypeOfData) - 1
strTypeOfData(0) = Lookup_Value & "External"
strTypeOfData(1) = Lookup_Value & "Internal"
strTypeOfData(2) = Lookup_Value & "Forecast"
Get_SQL_1 = "SELECT [SQL_Statement] FROM tblMappingsOtherSpend WHERE [Lookup] ='" & strTypeOfData(i) & "';"
Get_SQL_2 = "SELECT [Lookup_Column] FROM tblMappingsOtherSpend WHERE [Lookup] ='" & strTypeOfData(i) & "';"
Set rs_1 = mydb.OpenRecordset(Get_SQL_1)
SQL_Return_Value = rs_1.Fields("SQL_Statement").Value
SQL_Return_Value = SQL_Return_Value & Year_Value & Mth_Value & "';"
Set rs_2 = mydb.OpenRecordset(Get_SQL_2)
Set rs_3 = mydb.OpenRecordset(SQL_Return_Value)
Lookup_Column_Name = rs_2.Fields("Lookup_Column").Value
If rs_3.RecordCount = 1 Then
fnDataReturn = CLng(rs_3.Fields(Lookup_Column_Name).Value)
If fnDataReturn <> 0 Or fnDataReturn <> "" Then
GetValue = CLng(fnDataReturn)
Exit For
End If
End If
GetValue = 0
Next i
rs_1.Close
rs_2.Close
rs_3.Close
Set rs_1 = Nothing
Set rs_2 = Nothing
Set rs_3 = Nothing
Set mydb = Nothing
Exit_GetValue:
Exit Function
Err_GetValue:
GetValue = 0
Select Case Err.Number
Case Else
GoTo Exit_GetValue
End Select
End Function