2014-10-10 57 views
0

在表格的一個短文本列中,這樣的數據被存儲爲「any_text_N」,其中N是每行特定的某個數字。
我需要用N + 1代替N.
任何人都可以提供查詢來做到這一點?
用於替換字符串中的數字的查詢

+0

是 '_N' 總是最右邊的字符,並且當你爲每一行說'具體'時,你的意思是獨一無二的還是真的與一行有關? – 2014-10-10 15:25:09

回答

1

假設(1)數字始終是最右邊的字符,並且(2)數字前面有下劃線,您可以創建一個函數來解析數字並返回增加的數值(請參見下文)。

然後對其進行測試,創建一個查詢類似如下(請確保您測試先行!!!):

SELECT Table2.MyText, resetnbr([MyText]) AS NewVal 
FROM Table2 
WHERE (((Table2.MyText) Is Not Null)); 

然後更新您的數據:

UPDATE Table2 SET Table2.MyText= resetnbr([MyText]) 
WHERE (((Table2.MyText) Is Not Null)); 


Public Function ResetNbr(strIn As String) As String 
'Assumes: (1) Number in rightmost position of string; (2) underscore preceeds number 
Dim iLen As Integer 
Dim i  As Integer 
Dim sNbr As String 

    If strIn = "" Then 
     ResetNbr = strIn 
     Exit Function 
    End If 
    iLen = Len(strIn) 
    For i = iLen To 1 Step -1 
     If Mid(strIn, i, 1) = "_" Then 
      Exit For 
     End If 
    Next i 
    If i > 1 Then 
     sNbr = Mid(strIn, i + 1, 99) 
     sNbr = sNbr + 1 
     ResetNbr = left(strIn, i) & sNbr 
    Else 
     ' No underscore found! 
     ResetNbr = strIn 
    End If 
End Function 
+0

感謝您的回覆!這是非常有益的! – 2014-10-10 19:12:55