Access2013 accdb オートナンバー 取得方法 | 備忘録 (。・_・。)ノ
まだ使えるOffice365 余命数日かなぁ
ギリギリまでお世話になっております。
家での事前確認ができなくなると辛いかも^^;

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
'Microsoft ActiveX Data Objexts 6.1 Library 参照設定
    Dim cn As ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strSQL As String
    
'ADO Sample
    '接続
    Set cn = CurrentProject.Connection
    '追加
    strSQL = "INSERT INTO テーブル1 ( ITEM1) VALUES ('Microsoft')"
    cn.Execute strSQL
    MsgBox cn.Execute("SELECT @@IDENTITY").Collect(0) '← AUTONO取得

'    '最大値取得
'    strSQL = "SELECT MAX(ID) AS xID FROM テーブル1"
'    rs.Open strSQL, cn
'    MsgBox rs!xID.Value

    '終了
'    rs.Close
'    Set rs = Nothing
    cn.Close
    Set cn = Nothing

Exit Sub

'ADO Sample
    Set cn = CurrentProject.Connection
    strSQL = "SELECT * FROM テーブル1"
    rs.Open strSQL, cn, adOpenDynamic, adLockPessimistic
    rs.AddNew ' レコード追加
    rs("ITEM1") = "Microsoft"
    rs.Update
    MsgBox rs("ID") '← AUTONO取得
    rs.Close
    Set cn = Nothing

'DAO Sample
Dim dbs As Database
Dim rst As Recordset
'Dim strSQL As String
    Set dbs = CurrentDb
    strSQL = "SELECT MAX(ID) As xID FROM テーブル1"
    Set rst = dbs.OpenRecordset(strSQL)
    MsgBox rst.Fields("xID")
    rst.Close
    Set rst = Nothing
    dbs.Close
    Set dbs = Nothing
End Sub

'Access でオートナンバー型フィールドの値をリセットする方法
'http://support.microsoft.com/kb/812718/ja

'SQLServer
'自動採番された値を取得
'SELECT IDENT_CURRENT('テーブル1') AS LASTID

'自動採番された値をリセット
'DBCC CHECKIDENT('テーブル1', RESEED, 0)  

'SQL Serverで生成されたIdentity取得する方法
'IDENTITY (プロパティ) (Transact-SQL)
'http://msdn2.microsoft.com/ja-jp/library/ms186775.aspx
'
'取得する方法は下記の3つ。
'@@IDENTITY
'SCOPE_IDENTITY
'IDENT_CURRENT
'
'@@IDENTITY
'すべてのスコープを対象に、現在のセッション内の任意のテーブルに対して生成された最後の ID 値を返す。
'
'@@IDENTITY (Transact-SQL)
'http://msdn2.microsoft.com/ja-JP/library/ms187342.aspx
'
'SCOPE_IDENTITY
'現在のセッションと現在のスコープ内の任意のテーブルに対して生成された最後の ID 値を返します。
'
'SCOPE_IDENTITY (Transact - SQL)
'http://msdn2.microsoft.com/ja-JP/library/ms190315.aspx
'
'IDENT_CURRENT
'任意のセッションおよび任意のスコープ内の特定のテーブルに対して生成された最後の ID 値を返す。
'
'IDENT_CURRENT (Transact - SQL)
'http://msdn2.microsoft.com/ja-jp/library/ms175098.aspx