AccessTr.neT
Yeniden Sıra Numarası Verme - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Yeniden Sıra Numarası Verme (/konu-yeniden-sira-numarasi-verme.html)

Sayfalar: 1 2 3 4


RE: Yeniden Sıra Numarası Verme - fenerli6774 - 08/02/2021

sonrdan eklenen sorgu hata (13:Type mismatch) veriyor. Ama sizin gönderdiğiniz örnek hata vermiyor. Çözemedim.
Burada for next gibi bir döngü kullansak nasıl olur. Hata veren sorgudan kurtulmak için
tblMallar tablosunda KonuID değeri form üzerindeki txtKonu ID ne eşit olanları bulup döngü ile 1 den başlayarak numaralandırsa
bunun kodunu nasıl yazabilirim.
Teşekkürler. İyi çalışmalar.


RE: Yeniden Sıra Numarası Verme - berduş - 08/02/2021

aşağıdaki kodu silme butonuna -en sona- ekleyip dener misiniz?
CurrentDb.Execute "UPDATE tblMallar SET tblMallar.Malno = DCount(""*"",""[tblMallar]"",""[Ihaleno]='" & Me.akNo & "' and  [MalID]<= "" & [tblMallar]![MalID]);"
Not: örneğiniz gerekli referanslar eklenmemiş olduğundan ben de çalışmadı, dosyanız sizde çalışıyor mu?


RE: Yeniden Sıra Numarası Verme - fenerli6774 - 08/02/2021

Kodu ekledim.Çalışmıyor.


RE: Yeniden Sıra Numarası Verme - fenerli6774 - 08/02/2021

Aşağıdaki gibi bir kod yazsam. Verilecek numarayı i olarak tanımlasam.
KonuID si formdaki KonuID ye eşit olan MalID ye eşit olanları bulsa ve i değerini yazsa. Yazdıktan sonra i değerini 1 artırsa.
Mantık doğru olur mu?
Mantık doğruysa koddaki hataları düzeltebilrimisiniz.

Dim strSQL1 As String
Dim rsSQL1 As ADODB.Recordset
Dim Varmi As Integer
Dim i As String
i = 1

strSQL1 = "SELECT * FROM tblKonu WHERE ((Ihaleno='" & Me.akNo & "') AND (Yil='" & Me.txtYil & "'));"

Set rsSQL1 = New ADODB.Recordset

rsSQL1.Open strSQL1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

DoCmd.SetWarnings False

Do While Not rsSQL1.EOF

Varmi = Nz(DLookup("MalID", "tblMallar", "[KonuID] = " & rsSQL1.Fields("KonuID") & " And [Yil] = '" & Me.txtYil & "' And [Ihaleno] = '" & Me.akMalno & "'"), 0)

If Varmi = 0 Then
DoCmd.RunSQL "INSERT INTO tblMallar (Malno) VALUES ('" & i & "')"
i = i + 1
Else
Exit Sub
End If


rsSQL1.MoveNext

Loop

DoCmd.SetWarnings True
rsSQL1.Close
Set rsSQL1 = Nothing


RE: Yeniden Sıra Numarası Verme - berduş - 08/02/2021

hata mı veriyor değişiklik mi yapmıyor?
çünkü tblMallar tablonuzda MalNo alanının hepsine rasgele numara verdim
silmek istediğimde hata verdiği için tüm silme kodlarını iptal ettim sadece o kodu kullandım hepsini düzenledi


RE: Yeniden Sıra Numarası Verme - mozuer - 08/02/2021

Tabloda Malno alanını silip Formun kayıt kaynağı olan sorguda Malno alanı oluşturup
Malno=DCount("*","tblMallar","[MalId]<=" & [MalId])
yapsanız işinizi görür mü?
Böylece komutlara (kodlara) gerek te kalmaz diye düşünüyorum.