投稿日 | : 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