[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Accessファイルのフィールドデータmax値を取得したい。』(dbm_nasu)
Accessのファイルの一番目のフィールドに、長整数値でインクリメントされるデータが入ってます。 各レコードの最大値を取得したいのですが、教えて下さい。 現在Accessファイルのこのフィールドには、3,4,5,6,7,8と6個のレコードしかありません。 最大値を取得する為に、1から順にインクリメントしてサーチしているのですが、 1〜3が欠番の為に If Not .EOF Then .Seek myKey_i Else Exit Do の文で抜けてしまうみたいです。どうすれば良いでしょうか?
'レコードのID_NO最大値を検索する。 Sub mdb_id_max() Dim myCon As New ADODB.Connection Dim myRst As New ADODB.Recordset Dim myFileName As String Dim myTblName As String Dim myKey_i As Integer
myFileName = "job.mdb" myTblName = "main" myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ThisWorkbook.Path & "\" & myFileName & ";" With myRst 'インデックスの設定 .Index = "PrimaryKey" 'レコードセットを開く myRst.Open Source:=myTblName, ActiveConnection:=myCon, _ CursorType:=adOpenKeyset, LockType:=adLockOptimistic, _ Options:=adCmdTableDirect myKey_i = 1 Do '番号が登録されているか検索する If Not .EOF Then .Seek myKey_i Else Exit Do If .EOF Then '該当データ無し Else '該当データ有り id_max_d = myKey_i '現在max IDのデータ End If myKey_i = myKey_i + 1 Loop MsgBox "最大値は" & id_max_d & "です。" .Close End With myCon.Close Set myRst = Nothing 'オブジェクトの解放 Set myCon = Nothing End Sub
こんなのでいい様な気がするのですが。。。 ・ ・ If Not .EOF Then .MoveLast MsgBox "最大値は" & .Fields(0) & "です。" End If .Close ・ ・ (半平太)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.