天の声が囁いた。
~ADODBを使いなさい~
なんですと!?
そんなわけでふつーのモジュールで慌てて書き換えてみた。
Private Function Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim OnOK As Boolean = True
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer = 0
cn = New ADODB.Connection
rs = New ADODB.Recordset
cn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cn.Properties("Data Source").Value = "\\LANDISK1\share\Test.mdb"
Try
cn.Open()
rs.Open("T_Master", cn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockReadOnly)
Do Until rs.EOF
Debug.Print (rs.Fields(1).Value)
rs.MoveNext()
Loop
rs.Close()
cn.Close()
Catch ex As Exception
OnOK = False
Debug.Print ("ERROR")
End Try
Return OnOK
End Function
こっれがさーー、例が無いのよ…
VB6時代のんとか、dao使った例とかはゴロゴロしてるんだけど、
Setステートメントとか、ボク環境の…コレ、VB.net?はSetとかLet廃止~とか…
丸写しで動くモンが全く無くて、結局MSDN読み解いた…
で、トドメは、Recordsetの内容参照方法。
なんか普通に、rs.Fields(0)とか、rs.Fields("名前")とか、rs!名前とかで参照できてるんだよね。Exampleは。
でも何故かできない…で、.netへの変更点で、なんかVB6までは省略出来たPropertyとかを、.netでは、明示的にやんないとダメ…とかなんとか書いてあったの思い出して…
後ろに.valueつけたら動いた(*゚-゚)
まぁおかげで、スペースが入ってるProperty名への文字列設定方法とかみっけたからいっか。
ちなみに、フィールド名で参照するより、Index…数値で参照したほうがDirectなので速いそうです。
0 件のコメント:
コメントを投稿