VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/09/14(Tue) 11:15
投稿者ももたろう
Eメール
URL
タイトルmdb検索方法

下記コードでmdbを検索するプログラムを作りました。
問題なく検索できますが、ネットで見るとスリムな書き方をしているのを見ることがあります。
ADOにこだわらないので、アドバイス頂きたいです。
よろしくお願いします。

Private Function search(file As String, Pin As String, Symbol As String, i As Long, row1 As Integer)
    Dim cn          As New ADODB.Connection  'コネクションオブジェクト
    Dim rs          As ADODB.Recordset
    Dim strSQL      As String
    Dim cmd         As ADODB.Command
    Dim para1       As ADODB.Parameter
    Dim para2       As ADODB.Parameter
    Dim para3       As ADODB.Parameter
    Dim sFlagmdb    As String   'mdbに存在するかのフラグ

    Set cn = New ADODB.Connection
    '接続元のプロバイダとデータベースをConnectionStringで指定
    cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\seishiki.mdb"
    'コネクションを開く
    cn.Open

    '選択クエリーを設定
    strSQL = "SELECT * FROM search where ファイル名=? and ピン数=? and シンボル名1=?"
    Debug.Print strSQL

    'Commandオブジェクトの設定
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = cn
    cmd.CommandText = strSQL

    'パラメータオブジェクトの作成
    Set para1 = New ADODB.Parameter
    Set para1 = cmd.CreateParameter("a", adVarChar, adParamInput, 2)
    cmd.Parameters.Append para1
    Set para2 = New ADODB.Parameter
    Set para2 = cmd.CreateParameter("b", adVarChar, adParamInput, 5)
    cmd.Parameters.Append para2
    Set para3 = New ADODB.Parameter
    Set para3 = cmd.CreateParameter("c", adVarChar, adParamInput, 50)
    cmd.Parameters.Append para3

    '検索する値を設定
    cmd.Parameters("a").value = Left(file, 2)  'ファイル名
    cmd.Parameters("b").value = Pin 'ピン数
    cmd.Parameters("c").value = Symbol  'シンボル名1

    'Recordsetオブジェクトの作成
    Set rs = New ADODB.Recordset
    'ファイル名がmdbに存在するか?
    Set rs = cmd.Execute
    'mdb検索
    sFlagmdb = 0
    With rs
        Do While Not .EOF
            If .EOF = True Then
                sFlagmdb = 0
                Exit Do
            Else
                sFlagmdb = 1
                Debug.Print rs![ファイル名] & " " & rs![ピン数] & " " & rs![シンボル名1]
                .MoveNext
            End If
        Loop
    End With

    'Recordsetオブジェクトを閉じる
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
End Function


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -