访问vba中查询的数字格式

时间:2016-12-02 16:30:29

标签: ms-access access-vba

我在使用VBA访问时创建了一个查询,我想将最后两列的数字格式更改为*#。## 0,00; *(#。## 0,00); * -00 < / p>

我没有找到怎么做。这是我做的:

Sub orcMensal(periodo As String)

Dim rs As QueryDef
Dim SQL1 As String
Dim ano As String
Dim tabelaCA As String
Dim tabelaRealizado As String


tabelaCA = "[ORCAMENTO_CA_20" & Right(periodo, 2) & "]"
tabelaRealizado = "[" & periodo & "_MA]"


SQL1 = "SELECT " & tabelaCA & ".coger AS [Codigo Coger], " _
        & tabelaCA & ".[Descricao], " _
        & tabelaCA & ".[" & periodo & "] AS [Orcamento], " _
        & tabelaRealizado & ".[REALIZADO] AS [Realizado], " _
        & "(" & tabelaRealizado & ".[REALIZADO] - " & tabelaCA & ".[" & periodo & "]) AS [Diferenca] " _
        & "FROM " & tabelaCA _
        & " INNER JOIN " & tabelaRealizado & " ON" _
        & " (" & tabelaCA & ".[coger] = " & tabelaRealizado & ".[COD_ES] AND " _
        & tabelaCA & ".[Titular] = " & tabelaRealizado & ".[TITULAR]);"



Debug.Print SQL1
Set rs = CurrentDb.CreateQueryDef(periodo, SQL1)
DoCmd.OpenQuery rs.Name, , acReadOnly



End Sub

1 个答案:

答案 0 :(得分:0)

我在SQL查询中使用了Format函数,就像@Wayne G. Dunn评论的那样。我想要的格式是

1) 1000000,5023 >>>> 1.000.000,50;  
2) -5200000,7833 >>>> (5.200.000,78);  
3) 0 >>>> -   

所以我使用了&#39;#,## 0.00; (#,## 0.00); - 格式功能中的&#39; ,这里是查询的外观:

SQL1 = "SELECT " & tabelaCA & ".coger AS [Codigo Coger], " _
        & tabelaCA & ".[Descricao], " _
        & "Format(" & tabelaCA & ".[" & periodo & "], '#,##0.00; (#,##0.00); -') AS [Orcamento], FORMAT(" _
        & tabelaRealizado & ".[REALIZADO], '#,##0.00; (#,##0.00); -') AS [Realizado], " _
        & "Format((" & tabelaRealizado & ".[REALIZADO] - " & tabelaCA & ".[" & periodo & "]), '#,##0.00; (#,##0.00); -') AS [Diferenca] " _
        & "FROM " & tabelaCA _
        & " LEFT JOIN " & tabelaRealizado & " ON" _
        & " (" & tabelaCA & ".[coger] = " & tabelaRealizado & ".[COD_ES] AND " _
        & tabelaCA & ".[Titular] = " & tabelaRealizado & ".[TITULAR])" _
        & "WHERE " & tabelaCA & ".coger <> '';"