tagCANDY CGI VBレスキュー(花ちゃん) - 文字列変換(SQLの書き方)(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
文字列変換(SQLの書き方)(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

文字列変換(SQLの書き方)(VB6.0) [No.216の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.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
後は、追加条件やエラー処理等を付け足して下さい。
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ