(06/08/2021, 10:47)berduş yazdı: neden örnek çalışmanızı eklemiyorsunuz ben onu anlamıyorum!
her çalışmanın kendine has bir yapısı vardır, ben sizin çalışmanızı görmeden size ne önerebilirim ki,
metin0 veri girilen bir alan metin kutusu olmadan veriler nasıl eklenecek?
çalışmanızda verileri nasıl ekliyorsunuz?
Kusura bakmayın örnek çalışma şimdi ekledim.
tablodaki hangi alana sıralama no yazılacak?
işlem sadece yeni kayıtlarda mı olacak?
Rapor_No_Dosya alanı sıralamanın yapılacağı alansa neden sayı değil de metin türünde?
Rapor_No_Dosya alanına sıralama no yazılacak. işlem yeni kayıtlarda ve değiştirilen kayıtlarda olacak. Sayı türündeyki olmamasının sebebi kısa metin mi acaba diye denerken o şekilde kalmış.
(06/08/2021, 11:08)lemoncher2 yazdı: değiştirilen kayıtlarda olacak
derken tam olarak kast ettiğiniz ne? orada Rapor_No_Dosya yoksa mı eklenecek yoksa Rapor_No_Dosya olmasına rağmen daha küçük boş bir değer varsa o mu atanacak?
ayrıca formunuzda Rapor_No_Dosya alanına ait bir alan göremedim.
(06/08/2021, 11:16)berduş yazdı: (06/08/2021, 11:08)lemoncher2 yazdı: değiştirilen kayıtlarda olacak
derken tam olarak kast ettiğiniz ne? orada Rapor_No_Dosya yoksa mı eklenecek yoksa Rapor_No_Dosya olmasına rağmen daha küçük boş bir değer varsa o mu atanacak?
ayrıca formunuzda Rapor_No_Dosya alanına ait bir alan göremedim.
Rapor_No_Dosya olmasına rağmen daha küçük boş bir değer varsa o atanacak aslında ama buna gerek yok bunun yerine değişiklik durumunda manuel olarak Rapor_No_Dosya sayısını verdirmek daha mantıklı olacak mükerer kayıt olmaması içinde if atayabilirim.
Evet formunda Rapor_No_Dosya adında metin kutusu yok. Bu işlem için metin kutusu gerekmeden kaydetmeside sanırım mümkün değil isterseniz metin kutusunu ekleyip tekrardan örnek çalışma göndereyim.
tablonuzun Rapor_No_Dosya alanının türü sayısal olarak değiştirilmiştir metin türünde sıralama hatalı olabiliyor
Function Yok() As Long
Dim Kayit As Recordset, Sayac As Long
Set Kayit = CurrentDb.OpenRecordset("Select Rapor_No_Dosya from Tablo1 where (Rapor_No_Dosya)>0 order by Rapor_No_Dosya") '<== değişen
If Kayit.RecordCount = 0 Then Yok = 1: Exit Function
Kayit.MoveFirst
Sayac = 0
Do Until Kayit.EOF
Sayac = Sayac + 1
If Sayac <> Nz(Kayit(0), 0) Then Yok = Sayac: Exit Do
Kayit.MoveNext
Loop
If Yok = 0 Then Yok = Kayit.RecordCount + 1 '<==eklenen
Kayit.Close: Set Kayit = Nothing
End Function
kaydetme kodu
Private Sub Kaydet_Click()
DoCmd.SetWarnings False
On Error Resume Next
If MsgBox("Değişiklikler kaydedilsin mi?", vbCritical + vbYesNo + vbDefaultButton1, "UYARI") = vbYes Then
Me.Liste162.Requery
Me.Yeni_Kayit.Enabled = True
Me.Duzenle.Enabled = True
Me.Kaydet.Enabled = False
Me.Rapor_No_Dosya = Yok '<==eklenen
Else
Me.Undo
End If
Me.Kaydet.Enabled = False
Me.Duzenle.Enabled = True
Me.Yeni_Kayit.Enabled = True
Me.Liste162.Locked = False
DoCmd.RunCommand acCmdSave
Me.Liste162.Requery
DoCmd.GoToRecord , , acNewRec
DoCmd.SetWarnings True
End Sub