---------sql生成----------
任務是當用戶以逗號來分隔查詢的條件,的多條件查詢,使用in(x,y),但是當在數據庫(access)對應的字段是字符型是就會出現錯誤,那是當然的!如果是in('x','y')就沒有問題!
下面的代碼就是對字符串的操作,返回 'x','y'。
'-----接受要處理的字符串-------
function tool_distest(byval textbefore as string)
dim textafter() as string
dim intnum, inttextlen, k, i as integer
intnum = 1
inttextlen = len(textbefore)
'--------計算有多少的查詢條件--------
for i = 1 to inttextlen
if mid(textbefore, i, 1) = "," then
intnum = intnum + 1
end if
next
'-----------------------------------
redim textafter(intnum)
k = 1
'--------把每個條件放到數組里---------
for i = 1 to inttextlen
if mid(textbefore, i, 1) = "," then
k += 1
else
textafter(k) = textafter(k) & mid(textbefore, i, 1)
end if
next
'----------------------
dim strtemp as string
'--------為每一個條件加上''----------
for i = 1 to intnum
strtemp = textafter(i)
textafter(i) = "'" & strtemp & "'"
next
'----------------------
strtemp = ""
'------添加分隔條件用的","------
for i = 1 to intnum
strtemp = strtemp & textafter(i) & ","
next
'------------------
'------去除最后一個,------
strtemp = mid(strtemp, 1, len(strtemp) - 1)
'-------------------
return strtemp
end function
最后在sqlserver中又試了試,發現sqlserver查詢的時候用in(x,y)來查詢字符型是ok的,(sqlserver就是比access強點,呵呵)
---------end-------