2016-12-21 40 views
0

我有一個表格,其中存儲了用分號分隔的時間塊(;)。我想創建一個行,每次塊,例如,給予爲包含分隔字符串的列中的每個項目創建重複行

enter image description here

我想創建一個行,每次塊

enter image description here

請讓我知道如果這可能在Access中。

編輯

我嘗試使用此查詢

SELECT * INTO ImportedData 
FROM (
    SELECT [SourceData].[Time block], [SourceData].[Work History Id],[SourceData].[Operation Code] 
    FROM SourceData 
    WHERE InStr([SourceData].[Time block], ';') = 0 
    UNION ALL 
    SELECT Left([SourceData].[Time block], InStr([SourceData].[Time block], ';') - 1),[SourceData].[Work History Id], [SourceData].[Operation Code] 
    FROM SourceData 
    WHERE InStr([SourceData].[Time block], ';') > 0 
    UNION ALL 
    SELECT Mid([SourceData].[Time block], InStr([SourceData].[Time block], ';') + 1), [SourceData].[Work History Id], [SourceData].[Operation Code] 
    FROM SourceData 
    WHERE InStr([SourceData].[Time block], ';') > 0) AS CleanedUp; 

,我也試過這個VBA代碼,沒有運氣。

Public Sub addToTable() 
    Dim rstObj As DAO.Recordset, dbObj As DAO.Database 
    Dim InsertSQL As String 
    Set dbObj = CurrentDb() 
    Set rstObj = dbObj.OpenRecordset("Query1") 
    Do While Not rstObj.EOF 
     Dim memArr() As String 
     memArr = Split(rstObj.Fields("Time block"), ",") 
     For i = 0 To UBound(memArr) 
      InsertSQL = "SELECT*INTO ImportedData(Time block, Work History ID) VALUES(""" & rstObj.Fields("Time block") & """, """ & memArr(i) & """)" 
      DoCmd.RunSQL (InsertSQL) 
     Next 
     rstObj.MoveNext 
    Loop 
End Sub 
+0

爲什麼這個問題被標記下來? – user3667159

+0

「這個問題爲什麼被標記下來?」 - 可能是因爲你問過「是否有可能?」這個問題沒有給出任何關於你已經研究過什麼或者你曾經嘗試過什麼的跡象。看看[Meta上的這個答案](http://meta.stackoverflow.com/a/269359/2144390)。 –

+0

我爲監督道歉,我已經嘗試了不同的接近通過查詢,迄今爲止這是唯一有點工作正常,提供的SQL無法正常工作,因爲它插入空白記錄或有時不正確地拆分字符串,任何幫助將非常感謝 – user3667159

回答

相關問題