Sql-Server

從一個欄位中獲取值,並將其粘貼到新列中

  • July 18, 2019

我對 Microsoft Access 比較陌​​生,只是 SQL 程式的初學者。

我在 MS Access 中有一張桌子。它是從 .txt 文件導入的。在第一列中有一個帶有數字或程式碼的字元串。該數字始終位於字元串“Arbeitslpatz”之後(第一個字元從字元串位置 17 開始),並且始終每 76 行更改一次。(總行數 29790)。我想要實現的是複制這個數字(例如 101100)並將其粘貼到前 76 行的新列中。然後是接下來 76 行的下一個數字,依此類推。(我後來想使用 SQL WHERE 函式查找函式並返回一些所需的值,為此我需要將這些“Arbeitsplatz 數字”放在新行中。我已經為文件分配了一個 ID,但我沒有設法走得更遠。(我嘗試了 VBA 循環,但沒有真正成功)SQL 或 VBA 程式碼將不勝感激。 在此處輸入圖像描述

在此處輸入圖像描述

我不知道螢幕截圖有多好&/如果我提供了足夠的資訊…

感謝大家的幫助

這是我在 Access 中連結到數據庫的原始文本文件中的圖像:

在此處輸入圖像描述

編輯的操作碼:

Function Macro1()
'' dim variables
Dim tmp As String, temp() As String
Dim rs As Recordset
'' open source for reading
Open "J:\80_Applications\SAPGuiScripting\01_TXT_Files\CM01_Total.csv" For Input As #1
'' attach recordset to table
Set rs = CurrentDb.OpenRecordset("CM01_Total_1") 
'' loop source - read line-by-line until its end
Do Until EOF(1)
 '' read one line
 Line Input #1, tmp
 '' look if it is a header, if yes, extract and store the number
 If Left(tmp, 12) = "Arbeitsplatz" Then num = Trim(Mid(tmp, 17,8))
 '' look if it is a data line
 If InStr(tmp, "|") > 0 And InStr(tmp, "Woche") = 0 Then
   '' divide the line to separate fields
   temp = Split(tmp, "|")
   With rs
     '' add new, empty, record
     .AddNew
     '' set values into fields
     !Arbeitsplatz = num
     !Woche = temp(1)
     !Bedarf = temp(2)
     !Angebot = temp(3)
     !Belast = temp(4)
     ![freie_Kap] = temp(5)
     !Einh = temp(6)
     '' save editions
     .Update
   End With
 End If
'' loop to reading the next line
Loop
'' close source file and recordset
Close #1
rs.Close
Set rs = Nothing
End Function

PS。必須添加錯誤處理程序。

引用自:https://dba.stackexchange.com/questions/243065