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

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

できました!!ありがとうございました。(修正後のコードを下記に貼り付けておきます)

> DAOは使ったこと無いので分かりませんが、このrsはDAOのRecordSetオブジェクトなんでしょうか?
> もし参照設定でADOとDAOの両方を指定していた場合、優先順位が上にある方が使われます。
> 宣言する時は
>
>     Dim rs As DAO.Recordset
>
> のようにする癖を付けて下さい。

参照設定で、DAOも設定しており、ADOより上になっていたので、参照設定をはずしました。

> ちなみに私ならADOでこんな感じ↓にしますね。
> まァ、どういう風に使う関数なのか分からないので適当ですけど。
>
>
> Private Function search(file As String, Pin As String, Symbol As String) As String
>     Dim cn          As ADODB.Connection
>     Dim rs          As ADODB.Recordset
>     Dim strSQL      As String
>     Dim sFlagmdb    As String
>    
>     Set cn = New ADODB.Connection
>     Set rs = New ADODB.Recordset
>    
>     With cn
>         .ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\seishiki.mdb"
>         .Open
>     End With
>    
>     '選択クエリーを設定
>     strSQL = "select count(*) as [num] " & _
>              "from search " & _
>              "where([ファイル名] = '" & Left$(file, 2) & "' and " & _
>                    "[ピン数] = " & Pin & " and " & _
>                    "[シンボル名1] = '" & Symbol & "')"
>    
>     With rs
>         .Open strSQL, cn, adOpenStatic, adLockReadOnly
>        
>         sFlagmdb = !num
>        
>         .Close
>     End With
>    
>     cn.Close
>    
>     Set rs = Nothing
>     Set cn = Nothing
>    
>     search = sFlagmdb
> End Function

'***ここからが修正後のソースです***
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 sFlagmdb    As String   'mdbに存在するかのフラグ
          
    Set cn = New ADODB.Connection

    'コネクションを開く
    cn.Open ("provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\seishiki.mdb")

    Set rs = cn.Execute("SELECT * FROM search WHERE ファイル名 = '" & Left(file, 2) & "' and ピン数 = '" & Pin & "' and シンボル名1= '" & Symbol & "';")
    
    '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 -