다음 코드는 잘 작동하지만 저장된 값을 가장 가까운 펜스로 반올림하지는 않습니다. 예를 들어 8.025가 8.01 대신 올라오고 있습니다. 누구든지 수정 제안을 할 수 있습니까?액세스 반올림
Public Function Fs_Update_AccInvoices_Nexum() As Boolean
Dim adoRsInvoiceDCID As New ADODB.Recordset
Dim adoRsNexumInvoices As New ADODB.Recordset
On Error Resume Next
adoRsInvoiceDCID.Open "SELECT * FROM [tInvoiceDCID] where Issued=0" _
, CurrentProject.Connection, 2, 2
While Not adoRsInvoiceDCID.EOF
adoRsNexumInvoices.Open "SELECT * FROM [tPrintInvoiceNumbersNexum] " _
& " WHERE InvoiceID=" & adoRsInvoiceDCID("InvoiceID") _
, CurrentProject.Connection, 2, 2
If Not adoRsNexumInvoices.EOF Then
DoCmd.SetWarnings off
DoCmd.RunSQL "Update [Acc Invoices t Nexum] " _
& " SET [Total Due] = Round((Fees/0.8)+(VAT/0.8)+OutLays,2)" _
& " Fees = Round(Fees/0.8,2), VAT = Round(Vat/0.8,2)" _
& " WHERE Invoice=" & adoRsNexumInvoices("PrintingasINVOICE")
End If
adoRsNexumInvoices.Close
adoRsInvoiceDCID.MoveNext
Wend
adoRsInvoiceDCID.Close
End Function
건배 로스
는
감사합니다. 가장 도움이됩니다. – Ross
"# .00"을 입력하면 Round ((Fees/0.8) + (VAT/0.8) + OutLays, "# .00") 코드 오류가 발생합니다. ? – Ross
# .00은 둥근이 아닌 형식으로되어 있습니다. "Format ((Fees/0.8) + (VAT/0.8) + OutLays,"# .00 ")' – Fionnuala