Merhaba, alt formda bu işlemi yapamazsınız.
Uygulama tasarımınıza göre, Hareketdetay isimli tabloya hareketid değeri 1 olan kayıt eklediğinizde, hareketdetid değeri 1 olursa, yeni siparişte hareketid değeri 2 olduğunda hareketdetid değerine tekrar 1 yazdıramazsınız.
HAREKETDETAY tablosundaki HAREKETDETID alanı birincil anahtar, aynı sayıyı tekrar yazdıramazsınız.
Bunun yerine, alt forma "s_no" adında metin kutusu ekle, bu metin kutusunun denetim kaynağına
=RowNum([Form])
Kodu ekle, alt forma aşağıdaki kodu ekle
Public Function RowNum(frm As Form) As Variant
On Error GoTo Err_RowNum
With frm.RecordsetClone
.Bookmark = frm.Bookmark
RowNum = .AbsolutePosition + 1
End With
Exit_RowNum:
Exit Function
Err_RowNum:
If Err.Number <> 3021& Then
Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description
End If
RowNum = Null
Resume Exit_RowNum
End Function
Siz liste kutusuna çift tıklayarak alt forma veri aktardığınızda, altformdaki s_no metin kutusuna sıra numarasını yazar. Silinen otomatik sayının yerine aynı sayıyı verdirmeye veya tablodaki otomatik sayının sıralı olmasıyla uğraşmayın, bırakın 1, 5, 8, 9 gibi sırasız devam etsin. Sizin o alandaki veri ile işiniz yok.