Autonumber Sütununun Aynı Kalması Veya Bir Artması

1 2 3 4
30/06/2019, 20:49

10pele10

(30/06/2019, 19:49)halily yazdı: maalesef gönderdiğiniz form bende  açılmadı ama -yanılmıyorsam- sorun eski Access sürümlerinde "ADO" nun olmamasından kaynaklanıyor.
kodu değiştirdim dilerim sorunsuz çalışır
referanslardan "Microsoft DAO 3.x Object Library" etkinleştirmelisiniz buradaki 3.x ofis sürümüne göre değişebilir
Private Sub BtnGuncelle_Click()
'referans eklemeniz gerekebilir "Microsoft DAO 3.x Object Library" referansını eklemelisiniz
Tbas = Now
Dim rS As Recordset '<== burada hata verirse  ==> Dim rS As DAO.Recordset de olabilir <== olarak değiştirin
Dim sOrGu, SqlGuncelle As String
Dim x As Long

sOrGu = "select * from tbltablo order by sno"
Set rS = CurrentDb.OpenRecordset(sOrGu)
        If rS.RecordCount = 0 Then GoTo 10
rS.MoveLast
rS.MoveFirst
x = 0
Do Until rS.EOF
    x = x + IIf(DLookup("as", "tbltablo", "sno=" & rS.Fields("sno")) = Nz(DLookup("as", "tbltablo", "sno=" & rS.Fields("sno") - 1)), 0, 1)
    SqlGuncelle = "UPDATE TblTablo SET TblTablo.as2 =" & x & " where sno=" & rS.Fields(0)
    CurrentDb.Execute SqlGuncelle
    rS.MoveNext
Loop
10
'süre hesapla_______________________________________
Tbit = Now
Sure = DateDiff("s", Tbas, Tbit)
tSny = Sure Mod 60
tDk = Sure \ 60
MsgBox ("İşlem " & tDk & " dakika :" & tSny & " saniyede bitti")
'süre hesapla_______________________________________Bitti
End Sub
Merhaba,
"referanslardan "Microsoft DAO 3.x Object Library" etkinleştirmelisiniz buradaki 3.x ofis sürümüne göre değişebilir" demişsiniz bunun nereden yapılacağını bulamadım?Gerekiyor mu bilmiyorum?
Yolladığınız yenikodu butonun OnClick yerine olduğu gibi yapıştırdım.ekte ki gibi hata verdi.(sizin koddaki tablo adını benimki ile değiştirdim sadece.Benim tablomun adı Table2-YENILMEMESERISI-EV,bir tane de formum var,onda da Güncelle butonu yaptım ve sizin kodu OnClick yerine yapıştırdım)
30/06/2019, 21:31

berduş

ek eklenmemiş galiba
hata ekranını resmini gönderir misiniz
30/06/2019, 21:36

10pele10

(30/06/2019, 21:31)halily yazdı: ek eklenmemiş galiba
hata ekranını resmini gönderir misiniz

eki tekrar ekledim.hata verdiği satır aşağıdadır
Set rS = CurrentDb.OpenRecordset(sOrGu)
30/06/2019, 21:55

berduş

butonun kodu aşağıdaki gibi olacak. tablo/alan/form vsvs  isimlendirmesinde kullandığınız "-" , Türkçe karakterler yada "boşluklar" soruna neden olabiliyor.
"boşluk" yada "-" yerine "_" kullanmanız daha uygun olur
aşağıdaki 2 resim referans eklemeyi ve kodu gösteriyor


'referans eklemeniz gerekebilir "Microsoft DAO 3.x Object Library" referansını eklemelisiniz
Tbas = Now
Dim rS As Recordset '<== burada hata verirse ==> Dim rS As DAO.Recordset de olabilir <== olarak değiştirin
Dim sOrGu, SqlGuncelle As String
Dim x As Long

sOrGu = "select * from [Table2-YENILMEMESERISI-EV] order by sno"
Set rS = CurrentDb.OpenRecordset(sOrGu)
If rS.RecordCount = 0 Then GoTo 10
rS.MoveLast
rS.MoveFirst
x = 0
Do Until rS.EOF
x = x + IIf(DLookup("as", "[Table2-YENILMEMESERISI-EV]", "sno=" & rS.Fields("sno")) = Nz(DLookup("as", "[Table2-YENILMEMESERISI-EV]", "sno=" & rS.Fields("sno") - 1)), 0, 1)
SqlGuncelle = "UPDATE [Table2-YENILMEMESERISI-EV] SET [Table2-YENILMEMESERISI-EV].as2 =" & x & " where sno=" & rS.Fields(0)
CurrentDb.Execute SqlGuncelle
rS.MoveNext
Loop

10

'süre hesapla_______________________________________
Tbit = Now
Sure = DateDiff("s", Tbas, Tbit)
tSny = Sure Mod 60
tDk = Sure \ 60
MsgBox ("İşlem " & tDk & " dakika :" & tSny & " saniyede bitti")
'süre hesapla_______________________________________Bitti
30/06/2019, 22:45

10pele10

(30/06/2019, 21:55)halily yazdı: butonun kodu aşağıdaki gibi olacak. tablo/alan/form vsvs  isimlendirmesinde kullandığınız "-" , Türkçe karakterler yada "boşluklar" soruna neden olabiliyor.
"boşluk" yada "-" yerine "_" kullanmanız daha uygun olur
aşağıdaki 2 resim referans eklemeyi ve kodu gösteriyor


'referans eklemeniz gerekebilir "Microsoft DAO 3.x Object Library" referansını eklemelisiniz
Tbas = Now
Dim rS As Recordset '<== burada hata verirse  ==> Dim rS As DAO.Recordset de olabilir <== olarak değiştirin
Dim sOrGu, SqlGuncelle As String
Dim x As Long

sOrGu = "select * from [Table2-YENILMEMESERISI-EV] order by sno"
Set rS = CurrentDb.OpenRecordset(sOrGu)
        If rS.RecordCount = 0 Then GoTo 10
rS.MoveLast
rS.MoveFirst
x = 0
Do Until rS.EOF
    x = x + IIf(DLookup("as", "[Table2-YENILMEMESERISI-EV]", "sno=" & rS.Fields("sno")) = Nz(DLookup("as", "[Table2-YENILMEMESERISI-EV]", "sno=" & rS.Fields("sno") - 1)), 0, 1)
    SqlGuncelle = "UPDATE [Table2-YENILMEMESERISI-EV] SET [Table2-YENILMEMESERISI-EV].as2 =" & x & " where sno=" & rS.Fields(0)
    CurrentDb.Execute SqlGuncelle
    rS.MoveNext
Loop

10

'süre hesapla_______________________________________
Tbit = Now
Sure = DateDiff("s", Tbas, Tbit)
tSny = Sure Mod 60
tDk = Sure \ 60
MsgBox ("İşlem " & tDk & " dakika :" & tSny & " saniyede bitti")
'süre hesapla_______________________________________Bitti

Bu sefer butona tıkladığımda hiç bir şey olmadı,çalışmadı.Referanslardan dediğinizi yaptım.Sizden bir ricam olacak,Ekte size sadece tablonun olduğu db yi yolluyorum(adb1 isimli olan 2000 formatında,diğeri ise arkadaşın bilgisayarında çevirdiğim 2007 formatı ile).Her ikisinde de sadece tablo var,formu ve butonu oluşturup 2000 Formatı olacak şekilde yollayabilirmisiniz,bende 2000 olduğu için ancak bu şekilde olabilir herhalde.
30/06/2019, 23:32

berduş

sorun 2000 formatında yollamakta değil,
sorun bendeki ofisin sonraki sürüm olmasından kaynaklanıyor.
bu nedenle bende çalışan kodun sizde çalışıp çalışamayacağını tam olarak bilemem.[attachment=30414]
1 2 3 4