簡體   English   中英

如何在MS ACCESS中轉置字段

[英]How to transpose Field in in MS ACCESS

我有一個包含52列的表格,現在我需要轉置包含Date的列

輸入:

2009 2010 2011 2012

30    50  60   80

輸出:

Year         Values

2009         30

2010         50

2011         60

2012         80

建議1 :復制數據,將其粘貼在excel中,然后復制並粘貼“特殊” >>“轉置”。 然后將其復制回Access中的新表中

建議2 :VBA。 假設您的表只有一條記錄,其中包含許多許多字段,則如下所示:

Sub transpose()
    Dim rs As Recordset
    Dim rsField As Field
    Dim db As Database
    Dim StrSQL As String

    Set db = CurrentDb

    Set rs = db.OpenRecordset("SELECT * FROM Table1", dbOpenTable)

    'Assuming that there is only 1 record
    For Each rsField In rs.Fields
        StrSQL = "INSERT INTO Table2 VALUES ('" & rsField.Name & "'," & rsField.Value & ");"
    Next rsField

End Sub

Table1具有多個字段的單個記錄。 Table2具有兩個字段( YEARVALUE

建議3 :1個真正可怕的UNION查詢:

SELECT "2009" as year, [2009] as value FROM Table1 
UNION ALL
SELECT "2010" as year, [2010] as value FROM Table1 
UNION ALL
SELECT "2011" as year, [2011] as value FROM Table1 
UNION ALL
SELECT "2012" as year, [2012] as value FROM Table1 

結論 :所有這些都很糟糕,但是您的數據也是如此。 excel解決方案是非常手動的,excel可能會破壞您的數據(刪除前導0,轉換日期格式,其他糟糕的事情)。 解決方案2意味着您必須編寫和維護VBA。解決方案3編寫起來很麻煩,並且如果您有其他類似的表,但是又需要取消數據透視,則很難重復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM