0

最終結果を完成させるのに苦労しているので、誰でも助けてもらえますか:

バインドされていないメインフォーム、バインドされたサブフォーム、Masterplant と PlantTransaction の 2 つのテーブルを取得しました。

レコードを編集すると、メインフォームに表示され、レコードを保存すると、サブフォームの既存のレコードを複製する必要がありますが、これは機能しますが、新しいレコードの営業時間は、前のレコードの営業時間になる必要があります。 、すべてが機能します。営業時間は前のレコードの営業時間終了から表示されず、TransactionID は別の TransactionID 番号で自動インクリメントする必要がある数値フィールドです。どんな助けでも大歓迎です、事前に感謝します!!!

以下のコード:

Private Sub cmdSave_Click()
Dim strSQL As String
Dim rst As DAO.Recordset
If IsNull(txtOpeningHRS) Then
  Set rst = Me.RecordsetClone
  If rst.RecordCount > 0 Then
    If Me.NewRecord Then
      rst.MoveLast
    Else
      rst.Bookmark = Me.Bookmark
      rst.MovePrevious
    End If
    txtOpeningHRS = rst!CloseHrs
  End If
End If

If IsNull(Me.TransactionID) Or Me.TransactionID = 0 Then
  Me.TransactionID = Nz(DMax("TransactionID", "PlantTransaction") + 1, 1234)
End If

strSQL = "INSERT INTO PlantTransaction(TransactionID, [Plant Number], Opening_Hours, 
[TransactionDate], [FuelConsumption], [Hour Meter Replaced], Comments, [Hours Worked]) & _ 
   strSQL & "VALUES(" & Me.txtTranID & ",'" & Me.txtPlantNo & "','" & Me.txtOpeningHRS & "',#" & 
   Me.txtTransDate & "#,'" & Me.txtFuelConsFuelHr & "','" & Me.txtHrMtrRep & "','" & Me.txtComments   
   & "','" & Me.txtHrsWorked & "');"
CurrentDb.Execute strSQL
Me.PlantTransactionQuery.Form.Requery
cmdNew_Click
End Sub
4

1 に答える 1

0

TransactionID を AutoNumber データ型に設定すると、自動的にインクリメントされます。

次のように置き換えてみることもできます。

CurrentDb.Execute strSQL
Me.PlantTransactionQuery.Form.Requery

と:

CurrentDb.Execute strSQL
Me!PlantTransactionQuery.Form.RowSource = "Select * from PlantTransaction"
Me.PlantTransactionQuery.Form.Refresh
于 2013-06-21T15:38:09.110 に答える