「フォームロード時のデータ読込み」の編集履歴(バックアップ)一覧はこちら
「フォームロード時のデータ読込み」(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()
strSQL = "select * from " & T_sample
Call SelectData(strSQL)
End Sub
'************************************************************************************
'Select発行
'************************************************************************************
Private Sub SelectData(strSQL)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open CurrentProject.Connection &color(black,aqua){'内部MDBの場合}
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合}
rs.CursorLocation = adUseClient
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly
Set Me.Recordset = rs.Clone &color(black,aqua){'自フォーム}
'Set Me.サブフォーム名.Controls.Parent.Recordset = rs.Clone &color(black,aqua){'サブフォーム}
rs.Close: Set rs = Nothing
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()
strSQL = "select * from " & T_sample
Call SelectData(strSQL)
End Sub
'************************************************************************************
'Select発行
'************************************************************************************
Private Sub SelectData(strSQL)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open CurrentProject.Connection &color(black,aqua){'内部MDBの場合}
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbAdd &color(black,aqua){'外部MDBの場合}
rs.CursorLocation = adUseClient
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly
Set Me.Recordset = rs.Clone &color(black,aqua){'自フォーム}
'Set Me.サブフォーム名.Controls.Parent.Recordset = rs.Clone &color(black,aqua){'サブフォーム}
rs.Close: Set rs = Nothing
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>
}