tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
文字列変換(SQLの書き方)(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2009/12/26 16:07
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[文字列処理][データベース][基本コード]                          *
* キーワード:SQL文,SQLの書き方,複合条件,判定関数,置き換え,検索,条件式       *
***********************************************************************************
タイトル : 文字列変換
記 事 No : 13387
投 稿 日 : 2009/02/02(Mon) 02:32
元質問者 : ドラえもん

ある文字列でAND OR BETWEEN LIKE 以外の文字を'で囲む方法を調べています。
例えば
のびた AND すねお
なら
'のびた' AND 'すねお'
BETWEEN 2001/01/01 AND 2002/01/01
なら
BETWEEN '2001/01/01' AND '2002/01/01'
LIKE ドラ*
なら
LIKE 'ドラ*'
見たいな感じです。

INSTRやMIDだけでもできそうな気もしますが、すごい大変です。
もっと簡単な方法を知っている方いらっしゃいましたら教えていただけないでしょうか。

-----------------------------------------------------------------------------------
記事No : 13390
投稿日 : 2009/02/02(Mon) 12:26
回答者 : 花ちゃん
-----------------------------------------------------------------------------------
Split関数 と Join関数を使って下記のような感じにした方が簡単かな

Option Explicit

Private Sub Command1_Click()
   Debug.Print MySqlJoin("BETWEEN 2001/01/01 AND 2002/01/01")
End Sub

Private Function MySqlJoin(ByVal myString As String) As String
   Dim AddDat As Variant
   Dim i      As Long
   AddDat = Split(myString, " ")
   For i = LBound(AddDat) To UBound(AddDat)
      If AddDat(i) = "AND" Or AddDat(i) = "OR" Or _
                              AddDat(i) = "BETWEEN" Or AddDat(i) = "LIKE" Then
      Else
         AddDat(i) = "'" & AddDat(i) & "'"
      End If
   Next i
   MySqlJoin = Join(AddDat, " ")
End Function
後は、追加条件やエラー処理等を付け足して下さい。



 [スレッド一覧へ] [親スレッドへ]