請教會寫程式/資料庫的朋友幫忙一下~
如何在Access中寫一程式,達成下列需求.
access的mdb檔. 內有一欄位abc, 裡面會有數字,
大部分像是50/60 ,或是 /60 , 或是 50/ ,
今天要將欄位abc分中的2個數值 例如上位的例子 50 及60
寫到欄位aa,及欄位bb.
另外是欄位abc中, 有的是/符號前後, 有的有數字,有的沒有數字
將原來有50/60的,寫進欄位aa50 欄位bb60 ,
或是 原來是 /60 , 寫進欄位aa(值是空白) 欄位bb60 ,
或是原來是 50/ , 寫進欄位aa(值是空白) 欄位bb50,
要如何在Access中做呢 ? 或是能幫忙寫好一執行檔呢,... 感恩.
下這行 SQL 就好了:
<pre class="c" name="code">
update TABLE set aa=LEFT(abc,INSTR(abc, '/')-1), bb=RIGHT(abc,len(abc)-INSTR(abc, '/'));
jerry686提到:
或是原來是 50/ , 寫進欄位aa(值是空白) 欄位bb50
回答問題還順便 de 題目的 bug ...
謝謝您~
由於對這很陌生,會測試看看,再來請教先進.
您好~將原來的資料檔資訊,以及執行後的錯誤訊息po上來,
請先進們指點.
這訊息小到 ... 我一點也幫不上忙 ...
你的 WID1 與 WID2 的欄位是數值欄位嗎?如果是的話,請先把欄位換成字串,轉換後,再更換為數值。
偽.程式:
if len(abc)=5 ; then aa=left(abc,2) ; bb=right(abc,2) ; endif
if len(abc)=3 and left(abc,1)="/" ; then aa="" ; bb=right(abc,2) ; endif
if len(abc)=3 and right(abc,1)="/" then aa=left(abc,2) ; bb="" ; endif
因為看起來像是一次工, 不是常態, 用 Access 的建立查詢或更新查詢的作法, 就大概像:
第一個查詢
aa 欄 = 資料自 left(abc,2) , bb 欄 = 資料字 right(abc,2)
但是有設定篩選 len(abc)=5
這樣就只會把符合的條件更新
第二個跟第三個查詢就以此類推. (以前三行的邏輯改一下)
不然....一次性工作的話....把 2 萬筆複製到 Excel , 再用上面的概念寫一下公式, 處理好再貼回 Access .
補充:
是舊資料,只要做這一次工而已,
所有欄位都是字申.