iT邦幫忙

0

有關Access程式的寫作

請教會寫程式/資料庫的朋友幫忙一下~
如何在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中做呢 ? 或是能幫忙寫好一執行檔呢,... 感恩.

1 個回答

16
wiseguy
iT邦超人 1 級 ‧ 2012-12-13 22:15:31

下這行 SQL 就好了:

<pre class="c" name="code">
update TABLE set aa=LEFT(abc,INSTR(abc, '/')-1), bb=RIGHT(abc,len(abc)-INSTR(abc, '/'));
看更多先前的回應...收起先前的回應...
wiseguy iT邦超人 1 級 ‧ 2012-12-14 00:32:22 檢舉

jerry686提到:
或是原來是 50/ , 寫進欄位aa(值是空白) 欄位bb50

回答問題還順便 de 題目的 bug ...XD

jerry686 iT邦新手 5 級 ‧ 2012-12-14 18:00:48 檢舉

謝謝您~
由於對這很陌生,會測試看看,再來請教先進.

jerry686 iT邦新手 5 級 ‧ 2012-12-14 18:47:52 檢舉

您好~將原來的資料檔資訊,以及執行後的錯誤訊息po上來,
請先進們指點.

jerry686 iT邦新手 5 級 ‧ 2012-12-14 18:49:03 檢舉

wiseguy iT邦超人 1 級 ‧ 2012-12-14 22:03:58 檢舉

這訊息小到 ... 我一點也幫不上忙 ...汗

wiseguy iT邦超人 1 級 ‧ 2012-12-14 22:08:58 檢舉

你的 WID1 與 WID2 的欄位是數值欄位嗎?如果是的話,請先把欄位換成字串,轉換後,再更換為數值。

slime iT邦大師 1 級 ‧ 2012-12-14 22:30:08 檢舉

偽.程式:
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
這樣就只會把符合的條件更新

第二個跟第三個查詢就以此類推. (以前三行的邏輯改一下)

slime iT邦大師 1 級 ‧ 2012-12-14 22:31:53 檢舉

不然....一次性工作的話....把 2 萬筆複製到 Excel , 再用上面的概念寫一下公式, 處理好再貼回 Access .

jerry686 iT邦新手 5 級 ‧ 2012-12-15 10:18:14 檢舉

補充:
是舊資料,只要做這一次工而已,
所有欄位都是字申.

我要發表回答

立即登入回答