2

基本的に、特定のデータセットで最大値を見つけ、その値を記録して別のレコードに適用する必要があります。

SQL「SELECTMAX(SCID)FROM[StockConversion];」を使ってみました ただし、これはこのSQLをテーブルのフィールドに入力するだけです。

今、私はその値を見つけるためのクエリを作成しましたが、これを達成するためにコードでクエリの結果を参照する方法はありますか?

コンテキストのコードは次のとおりです。

Private Sub listResult_DblClick(Cancel As Integer)

Dim sc1 As DAO.Recordset
Set sc1 = CurrentDb.OpenRecordset("Stock Conversion Items", dbOpenDynaset)
Dim strSource3 As String

strSource3 = DONT KNOW

sc1.AddNew
sc1.Fields("[SCID]").Value = strSource3
sc1.Fields("[Result PC]").Value = Me.listResult.Column(0)
sc1.Fields("[Status]").Value = "NEW"
sc1.Update

End Sub

よろしくお願いします、ボブP

4

2 に答える 2

2

MS Accessでは、ドメイン集約関数を使用できます。

strSource3 = DMax("MyField","MyTable")

SQLを使用したい場合は、次のようにします。

Dim rs As Recordset

Set rs = CurrentDB.Openrecordset( _
   "SELECT MAX(SCID) As MaxSCID FROM [Stock Conversion];")
strSource3 = rs!MaxSCID

マルチユーザー環境では、最大値に十分注意してください。別のユーザーがデータを入力したために変更される可能性があります。

チャットから

LasModifiedプロパティを使用して、以前のコードから必要なIDを取得できる可能性があるようです。これは、マルチユーザー環境でははるかに安全です。

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)

rs.AddNew
rs!AField = "abc"
rs.Update 
rs.Bookmark = rs.LastModified 
strSource3 = rs!SCID
于 2012-10-01T13:46:34.030 に答える
0

これを試して:

strSource3 = dmax("[field_name]","table_name")
于 2012-10-01T13:50:51.550 に答える