|
▼安久 さん:
こんにちは。
>しかし、エラーはでないのですが凄く重くてデータの移動を確認できません。
> (30分ぐらいしても無理でした)
DLookup関数でクエリ(ですよね?)を開いているため、
クエリを開く時間 + 検索の時間 なのでしょうかね…。
レコード件数やPCの環境によっても違うと思いますが、
クエリで処理されてみてはいかがでしょうか。
検査コード = 010092 が 「TG」
020010 が 「WBC」
のような形でしたら、
Private Sub 実行_Click()
'※要参照 DAO x.x Object Library
Dim SQLCode As String
Dim RS As DAO.Recordset
Dim KCode As Variant
Dim KName As Variant
Dim I As Long
KCode = Array("010092", "020010")
KName = Array("TG", "WBC")
For I = 0 To UBound(KCode)
SQLCode = "SELECT Ka検査q.検査結果 " _
& "FROM Ka検査q " _
& "WHERE Ka検査q.検査コード = '" & KCode(I) & "' " _
& "ORDER BY Ka検査q.[検査日] DESC;"
Set RS = CurrentDb.OpenRecordset(SQLCode, dbOpenSnapshot)
If Not (RS.NoMatch) Then
Forms![患者名].Controls(KName(I)) = RS![検査結果]
End If
RS.Close
Next
End Sub
ただこの場合も「Ka検査q」を開いているので、
できれば元テーブルから「SELECT」した方が早い処理になると思います。
|
|