「フォームロード時のデータ読込み」の編集履歴(バックアップ)一覧はこちら

フォームロード時のデータ読込み」(2013/07/19 (金) 15:19:25) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

フォームモジュール #blockquote{Option Compare Database Option Explicit Const strDbAdd = "c:\db1.mdb" &color(black,aqua){'外部MDBの場合} Const T_sample = "T_sample" &color(black,aqua){'テーブル名} Dim strSQL As String '************************************************************************************ 'フォームロード時のデータ読込み '************************************************************************************ Private Sub Form_Load() &nbsp;&nbsp;&nbsp;&nbsp;strSQL = "select * from " & T_sample &nbsp;&nbsp;&nbsp;&nbsp;Call SelectData(strSQL) End Sub '************************************************************************************ 'Select発行 '************************************************************************************ Private Sub SelectData(strSQL) &nbsp;&nbsp;&nbsp;&nbsp;Dim cn As New ADODB.Connection &nbsp;&nbsp;&nbsp;&nbsp;Dim rs As New ADODB.Recordset &nbsp;&nbsp;&nbsp;&nbsp;cn.Open CurrentProject.Connection &color(black,aqua){'内部MDBの場合} &nbsp;&nbsp;&nbsp;&nbsp;'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合} &nbsp;&nbsp;&nbsp;&nbsp;rs.CursorLocation = adUseClient &nbsp;&nbsp;&nbsp;&nbsp;rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly &nbsp;&nbsp;&nbsp;&nbsp;Set Me.Recordset = rs.Clone &color(black,aqua){'自フォーム} &nbsp;&nbsp;&nbsp;&nbsp;'Set Me.サブフォーム名.Controls.Parent.Recordset = rs.Clone &color(black,aqua){'サブフォーム} &nbsp;&nbsp;&nbsp;&nbsp;rs.Close: Set rs = Nothing &nbsp;&nbsp;&nbsp;&nbsp;cn.Close: Set cn = Nothing End Sub} -参照設定 "Microsoft ActiveX Data Objects X.X Library" -Select発行を同フォームモジュール内の他処理で使いまわすために別Subとした -Select発行を標準モジュールに置くと処理が遅くなったのでフォームモジュールに含めた(大体15ms→40ms) -フォームビューからデザインビューに変更した時、&color(red){マシン'<マシン名>' のユーザー 'Admin' がデータベースを開けない状態、またはロックできない状態にしています。}のエラーが出力される。Connectionの書き方を変えることで回避可能。原因等→http://www.accessclub.jp/bbs6/0004/das705.html ロック対策(内部MDBの場合) #blockquote{Dim cn As ADODB.Connection &color(black,aqua){'NEWを削除} Set cn = CurrentProject.Connection &color(black,aqua){'内部MDBの場合}} ロック対策(外部MDBの場合) #blockquote{Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合}}
フォームモジュール #blockquote{Option Compare Database Option Explicit Const strDbAdd = "c:\db1.mdb" &color(black,aqua){'外部MDBの場合} Const T_sample = "T_sample" &color(black,aqua){'テーブル名} Dim strSQL As String '************************************************************************************ 'フォームロード時のデータ読込み '************************************************************************************ Private Sub Form_Load() &nbsp;&nbsp;&nbsp;&nbsp;strSQL = "select * from " & T_sample &nbsp;&nbsp;&nbsp;&nbsp;Call SelectData(strSQL) End Sub '************************************************************************************ 'Select発行 '************************************************************************************ Private Sub SelectData(strSQL) &nbsp;&nbsp;&nbsp;&nbsp;Dim cn As New ADODB.Connection &nbsp;&nbsp;&nbsp;&nbsp;Dim rs As New ADODB.Recordset &nbsp;&nbsp;&nbsp;&nbsp;cn.Open CurrentProject.Connection &color(black,aqua){'内部MDBの場合} &nbsp;&nbsp;&nbsp;&nbsp;'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合} &nbsp;&nbsp;&nbsp;&nbsp;rs.CursorLocation = adUseClient &nbsp;&nbsp;&nbsp;&nbsp;rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly &nbsp;&nbsp;&nbsp;&nbsp;Set Me.Recordset = rs.Clone &color(black,aqua){'自フォーム} &nbsp;&nbsp;&nbsp;&nbsp;'Set Me.サブフォーム名.Controls.Parent.Recordset = rs.Clone &color(black,aqua){'サブフォーム} &nbsp;&nbsp;&nbsp;&nbsp;rs.Close: Set rs = Nothing &nbsp;&nbsp;&nbsp;&nbsp;cn.Close: Set cn = Nothing End Sub} -参照設定 "Microsoft ActiveX Data Objects X.X Library" -Select発行を同フォームモジュール内の他処理で使いまわすために別Subとした -Select発行を標準モジュールに置くと処理が遅くなったのでフォームモジュールに含めた(大体15ms→40ms) -フォームビューからデザインビューに変更した時、&color(red){マシン'<マシン名>' のユーザー 'Admin' がデータベースを開けない状態、またはロックできない状態にしています。}のエラーが出力される。Connectionの書き方を変えることで回避可能。原因等→http://www.accessclub.jp/bbs6/0004/das705.html ロック対策(内部MDBの場合) #blockquote{Dim cn As ADODB.Connection &color(black,aqua){'NEWを削除} Set cn = CurrentProject.Connection &color(black,aqua){'内部MDBの場合}} ロック対策(外部MDBの場合) #blockquote{Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合}} #html2(){ <pre class="brush: html;"> *表題1 パラグラフ >引用 |列1|列2|列3|列4|h |a|b|c|d| |a|b|c|d| </pre> }

表示オプション

横に並べて表示:
変化行の前後のみ表示: