天の声が囁いた。
~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 件のコメント:
コメントを投稿